Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Custom Animations and Transitions on iOS
Search
seyfeddin
December 13, 2014
Programming
2
190
Custom Animations and Transitions on iOS
The talk I gave at NSIstanbul's December Meetup
seyfeddin
December 13, 2014
Tweet
Share
More Decks by seyfeddin
See All by seyfeddin
iOS'te Tipografi
seyfoyun
0
110
Implementing Design Systems in Swift
seyfoyun
2
550
Practical Testing in iOS
seyfoyun
0
75
Modern iOS Geliştirme
seyfoyun
0
320
Auto-Layout Öldü Mü? – NSIstanbul Ekim 2016
seyfoyun
0
340
Messaging as an Interaction — NSIstanbul April 2015
seyfoyun
1
120
Being a "Mobile Designer"
seyfoyun
5
520
Twitter Fabric (Turkish)
seyfoyun
3
310
Storyboards vs. XIBs vs Code
seyfoyun
0
170
Other Decks in Programming
See All in Programming
入門プロパティベーステスト/learning-property-based-testing
kiway
6
1k
実践AI/ML ~よくあるユースケースとレコメンデーションの効果的な活用戦略~
cmnakamurashogo
0
190
LTのやり方
yosuke_furukawa
PRO
8
1k
Datadogのmonitorを Terraform管理に爆速で 移行する
kuro_kurorrr
2
280
Navigating Generative AI: A Developer's Guide
alperhankendi
0
160
Improved REXML XML parsing performance using StringScanner
naitoh
0
190
The Frontend Rubyist
largo
0
470
ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する
monotaro
PRO
10
2k
Upgrading Legacy to the Latest PHP Version
afilina
PRO
0
160
gRPCでの効率的なAPI開発とテストの進め方
uo
2
170
AFUP Day Lyon 2024 - DDD !== Archi hexagonale
bgalati
0
190
#kaigieffect LT 2024 - rexml-css_selector: A REXML extension for supporting CSS selector
makenowjust
1
140
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
321
37k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
Why Our Code Smells
bkeepers
PRO
331
56k
GraphQLとの向き合い方2022年版
quramy
33
13k
Teambox: Starting and Learning
jrom
128
8.5k
Unsuck your backbone
ammeep
664
57k
Gamification - CAS2011
davidbonilla
77
4.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
We Have a Design System, Now What?
morganepeng
43
6.8k
Writing Fast Ruby
sferik
623
60k
Practical Orchestrator
shlominoach
183
9.8k
A designer walks into a library…
pauljervisheath
201
23k
Transcript
NSIstanbul C O M M U N I T Y
Custom Animations and Transitions on iOS
Before
Interaction Designer
Form
None
Origami
None
Form
Custom Animations
A Primer on Animations
A Primer on Animations [UIView animateWithDuration:1.0 animations:^{ [self.view layoutIfNeeded]; }
completion:^{ }]; CAAnimation
A Primer on Animations UIView CALayer
A Primer on Animations CALayer [_loadingView.layer addAnimation:rotateAnimation forKey:@"rotateAnimation"];
A Primer on Animations CAAnimation CABasicAnimation CAKeyframeAnimation CAGroupAnimation
A Primer on Animations CAAnimation Keys rotation scale position height
origin strokeStart strokeEnd width
Basic Animations
Custom Animations
None
None
These animations require a lot of testing and trying.
These animations require a lot of testing and trying. How?
QuartzCode
None
Shape Particle Emitter Animations Chaining Replicator Image Text
Very Complex Animations
None
Custom Animations
Custom Transitions
iOS6 UIModalTransitions UINavigationController Transitions UIModalTransitionStyleCoverVertical UIModalTransitionStylePartialCurl UIModalTransitionStyleHorizontalFlip UIModalTransitionStyleCrossDissolve UIViewAnimationTransitionNone UIViewAnimationTransitionFlipFromLeft
UIViewAnimationTransitionFlipFromRight UIViewAnimationTransitionCurlUp UIViewAnimationTransitionCurlDown Custom Transitions
Custom Transitions iOS7 toVC.presentationStyle = UIModalPresentationCustom; toVC.transitioningDelegate = toVC; <UIViewControllerTransitioningDelegate>
<UIViewControllerTransitioningDelegate> -(id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController: (UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source -(id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController: (UIViewController
*)dismissed
<UIViewControllerAnimatedTransitioning> -(NSTimeInterval)transitionDuration: (id<UIViewControllerContextTransitioning>)transitionContext -(void)animateTransition: (id<UIViewControllerContextTransitioning>)transitionContext
transitionContext UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; UIViewController *toViewController = [transitionContext
viewControllerForKey:UITransitionContextToViewControllerKey];
- (id<UIViewControllerAnimatedTransitioning>) navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController*)fromVC toViewController:(UIViewController*)toVC { if (operation
== UINavigationControllerOperationPush) { return self.animator; } return nil; } Navigation Transitions
Thanks