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
230
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Custom Animations and Transitions on iOS
The talk I gave at NSIstanbul's December Meetup
seyfeddin
December 13, 2014
More Decks by seyfeddin
See All by seyfeddin
14 Years of iOS: Lessons and Key Points
seyfoyun
1
1.1k
iOS'te Tipografi
seyfoyun
0
370
Implementing Design Systems in Swift
seyfoyun
2
1.2k
Practical Testing in iOS
seyfoyun
0
150
Modern iOS Geliştirme
seyfoyun
0
430
Auto-Layout Öldü Mü? – NSIstanbul Ekim 2016
seyfoyun
0
400
Messaging as an Interaction — NSIstanbul April 2015
seyfoyun
1
160
Being a "Mobile Designer"
seyfoyun
5
590
Twitter Fabric (Turkish)
seyfoyun
3
360
Other Decks in Programming
See All in Programming
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.5k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
320
スマートグラスで並列バイブコーディング
hyshu
0
270
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
420
Inside Stream API
skrb
1
810
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
310
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.6k
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
210
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
290
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
420
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
250
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
540
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
We Are The Robots
honzajavorek
0
260
How STYLIGHT went responsive
nonsquared
100
6.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
270
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
My Coaching Mixtape
mlcsv
0
160
Claude Code のすすめ
schroneko
67
230k
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