Submit Search
Upload
SwiftでUIKitDynamics
•
1 like
•
867 views
Shinji Kobayashi
Follow
もくもくiOS 1周年LT会@Retty
Read less
Read more
Technology
Report
Share
Report
Share
1 of 13
Download now
Download to read offline
Recommended
Build your first wear app
Build your first wear app
furusin
FiiPractic 2015 - Adroid Pro - Day 1 - UI Day
FiiPractic 2015 - Adroid Pro - Day 1 - UI Day
Diaconu Andrei-Tudor
Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨
foxgem
Upswing Innovation Summit - Summer 2015
Upswing Innovation Summit - Summer 2015
UpswingRetention
UIKitDynamicsの活用法
UIKitDynamicsの活用法
Shinji Kobayashi
Intro to UIKit • Made by Many
Intro to UIKit • Made by Many
kenatmxm
YUI for Mobile - HTML5DevConf 11
YUI for Mobile - HTML5DevConf 11
Gonzalo Cordero
A tour through Swift attributes
A tour through Swift attributes
Marco Eidinger
Recommended
Build your first wear app
Build your first wear app
furusin
FiiPractic 2015 - Adroid Pro - Day 1 - UI Day
FiiPractic 2015 - Adroid Pro - Day 1 - UI Day
Diaconu Andrei-Tudor
Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨
foxgem
Upswing Innovation Summit - Summer 2015
Upswing Innovation Summit - Summer 2015
UpswingRetention
UIKitDynamicsの活用法
UIKitDynamicsの活用法
Shinji Kobayashi
Intro to UIKit • Made by Many
Intro to UIKit • Made by Many
kenatmxm
YUI for Mobile - HTML5DevConf 11
YUI for Mobile - HTML5DevConf 11
Gonzalo Cordero
A tour through Swift attributes
A tour through Swift attributes
Marco Eidinger
Leaving Interface Builder Behind
Leaving Interface Builder Behind
John Wilker
Objective c design pattens-architetcure
Objective c design pattens-architetcure
BITs Information Technology Consultants Co., Ltd.
Swf2 ui
Swf2 ui
Futada Takashi
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
규영 허
ViewController Transitions - Swift Paris Junior #3
ViewController Transitions - Swift Paris Junior #3
Julien PIERRE-LOUIS
iOS_Presentation
iOS_Presentation
Emannuel Carvalho
Building html5 apps using Cordova
Building html5 apps using Cordova
David Voyles
How To Build iOS Apps Without interface Builder
How To Build iOS Apps Without interface Builder
dasdom
CocoaHeads Rennes #4 : la rotation sur iOS
CocoaHeads Rennes #4 : la rotation sur iOS
CocoaHeadsRNS
FrenchKit: SwiftUI Data Flow with Redux
FrenchKit: SwiftUI Data Flow with Redux
ThomasRicouard
IOS APPs Revision
IOS APPs Revision
Muhammad Amin
ios_summit_2016_korhan
ios_summit_2016_korhan
Korhan Bircan
iOSインタラクションデザイン
iOSインタラクションデザイン
hIDDENxv
Taking control of Storyboard
Taking control of Storyboard
pitiphong_p
Creating Container View Controllers
Creating Container View Controllers
Bob McCune
TechGarage Hackaton
TechGarage Hackaton
Yoshikazu Ozawa
Heat on Wed.(ヒートオンウェンズディ)! Vol.1
Heat on Wed.(ヒートオンウェンズディ)! Vol.1
Noriyuki Nonomura
004
004
Stronger Shen
I os 11
I os 11
信嘉 陳
Quick Start to iOS Development
Quick Start to iOS Development
Jussi Pohjolainen
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Competition Advisory Services (India) LLP
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Enjoy Anytime
More Related Content
Similar to SwiftでUIKitDynamics
Leaving Interface Builder Behind
Leaving Interface Builder Behind
John Wilker
Objective c design pattens-architetcure
Objective c design pattens-architetcure
BITs Information Technology Consultants Co., Ltd.
Swf2 ui
Swf2 ui
Futada Takashi
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
규영 허
ViewController Transitions - Swift Paris Junior #3
ViewController Transitions - Swift Paris Junior #3
Julien PIERRE-LOUIS
iOS_Presentation
iOS_Presentation
Emannuel Carvalho
Building html5 apps using Cordova
Building html5 apps using Cordova
David Voyles
How To Build iOS Apps Without interface Builder
How To Build iOS Apps Without interface Builder
dasdom
CocoaHeads Rennes #4 : la rotation sur iOS
CocoaHeads Rennes #4 : la rotation sur iOS
CocoaHeadsRNS
FrenchKit: SwiftUI Data Flow with Redux
FrenchKit: SwiftUI Data Flow with Redux
ThomasRicouard
IOS APPs Revision
IOS APPs Revision
Muhammad Amin
ios_summit_2016_korhan
ios_summit_2016_korhan
Korhan Bircan
iOSインタラクションデザイン
iOSインタラクションデザイン
hIDDENxv
Taking control of Storyboard
Taking control of Storyboard
pitiphong_p
Creating Container View Controllers
Creating Container View Controllers
Bob McCune
TechGarage Hackaton
TechGarage Hackaton
Yoshikazu Ozawa
Heat on Wed.(ヒートオンウェンズディ)! Vol.1
Heat on Wed.(ヒートオンウェンズディ)! Vol.1
Noriyuki Nonomura
004
004
Stronger Shen
I os 11
I os 11
信嘉 陳
Quick Start to iOS Development
Quick Start to iOS Development
Jussi Pohjolainen
Similar to SwiftでUIKitDynamics
(20)
Leaving Interface Builder Behind
Leaving Interface Builder Behind
Objective c design pattens-architetcure
Objective c design pattens-architetcure
Swf2 ui
Swf2 ui
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
スケーラブル SwiftUI プロジェクトにおける実用的な TCA モジュラー化
ViewController Transitions - Swift Paris Junior #3
ViewController Transitions - Swift Paris Junior #3
iOS_Presentation
iOS_Presentation
Building html5 apps using Cordova
Building html5 apps using Cordova
How To Build iOS Apps Without interface Builder
How To Build iOS Apps Without interface Builder
CocoaHeads Rennes #4 : la rotation sur iOS
CocoaHeads Rennes #4 : la rotation sur iOS
FrenchKit: SwiftUI Data Flow with Redux
FrenchKit: SwiftUI Data Flow with Redux
IOS APPs Revision
IOS APPs Revision
ios_summit_2016_korhan
ios_summit_2016_korhan
iOSインタラクションデザイン
iOSインタラクションデザイン
Taking control of Storyboard
Taking control of Storyboard
Creating Container View Controllers
Creating Container View Controllers
TechGarage Hackaton
TechGarage Hackaton
Heat on Wed.(ヒートオンウェンズディ)! Vol.1
Heat on Wed.(ヒートオンウェンズディ)! Vol.1
004
004
I os 11
I os 11
Quick Start to iOS Development
Quick Start to iOS Development
Recently uploaded
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Competition Advisory Services (India) LLP
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Enjoy Anytime
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Deakin University
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Padma Pradeep
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
XfilesPro
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Hyundai Motor Group
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
soniya singh
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Scott Keck-Warren
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
OnBoard
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
null - The Open Security Community
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Softradix Technologies
Recently uploaded
(20)
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
SwiftでUIKitDynamics
1.
SwiftでUIKitDynamics Shinji Kobayashi GentleSoft もくもくiOS 1周年LT会@Retty
2.
Name:Shinji Kobayashi Twitter:@gentlejkov GentleSoft Who are
you? http://gentlesoft.net
3.
https://github.com/gentlesoft/UIKitDynamicsTest
4.
• 画面遷移 • UIViewを動かす •
UICollectionViewで多数のオブ ジェクト制御 UIDynamicsの使い道
5.
• 画面遷移 • UIViewを動かす •
UICollectionViewで多数のオブ ジェクト制御 UIDynamicsの使い道
6.
画面遷移 override func viewDidLoad()
{ super.viewDidLoad() ! self.transitioningDelegate = self } ! // MARK: - UIViewControllerAnimatedTransitioning func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? { return DropTransition() } func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? { return DropTransition() } UIViewControllerTransitioningDelegateを実装
7.
画面遷移 class DropTransition: NSObject,
UIViewControllerAnimatedTransitioning, UIDynamicAnimatorDelegate { private var transitionContext : UIViewControllerContextTransitioning? private lazy var gravity : UIGravityBehavior = { let gravity = UIGravityBehavior() gravity.gravityDirection = CGVector(dx: 0.5, dy: 1) return gravity }() private let collision = UICollisionBehavior() private lazy var dynamicItem : UIDynamicItemBehavior = { let dynamicItem = UIDynamicItemBehavior() dynamicItem.elasticity = 0.5 dynamicItem.resistance = 0.8 return dynamicItem }() private var animator : UIDynamicAnimator? インスタンスの遅延生成と初期化は便利?
8.
画面遷移 func transitionDuration(transitionContext: UIViewControllerContextTransitioning) ->
NSTimeInterval { return 0 } func animateTransition(transitionContext: UIViewControllerContextTransitioning) { self.transitionContext = transitionContext let from = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey )!.view let to = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)! .view ・・・アニメーションをセット } override func animationDidStop(anim: CAAnimation!, finished flag: Bool) { self.animator = nil } // MARK: - UIDynamicAnimatorDelegate func dynamicAnimatorDidPause(animator: UIDynamicAnimator) { self.transitionContext?.completeTransition(true) } アニメーション終了でcompleteTransitionを呼ぶ
9.
• 画面遷移 • UIViewを動かす •
UICollectionViewで多数のオブ ジェクト制御 UIDynamicsの使い道
10.
UIViewを動かす // MARK: Gesture func
handleGesture(recognizer: UIPanGestureRecognizer) { switch recognizer.state { case UIGestureRecognizerState.Began: self.tapPos = self.attachment.anchorPoint case UIGestureRecognizerState.Changed: let pos = recognizer.translationInView(self.malletView) self.attachment.anchorPoint = CGPoint(x: self.tapPos.x + pos.x, y: self.tapPos.y + pos.y) default: break } } • UIViewのタッチ判定はGestureRecognizerが使える • 指定ポイントへの移動はUIAttatchmentBehavior • Staticが使えないのはちょっと不便?
11.
• 画面遷移 • UIViewを動かす •
UICollectionViewで多数のオブ ジェクト制御 UIDynamicsの使い道
12.
UICollectionView + UIKitDynamics class
SandboxLayout: UICollectionViewLayout, UIDynamicAnimatorDelegate { ! ・・・ ! override func layoutAttributesForItemAtIndexPath(indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes! { var attr = self.animator.layoutAttributesForCellAtIndexPath(indexPath) if attr == nil { attr = UICollectionViewLayoutAttributes(forCellWithIndexPath: indexPath) attr.frame = self.sandBoxDelegate.initSand(indexPath) } return attr } • Swiftっぽくない実装を強いられる • animatorへのItemの追加時に一瞬アニメーションが止まる • ときおり動かなくなる・・・
13.
1周年おめでとう ございます
Download now