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
Playing Sheet presentation style on iOS 13
Search
Shin Yamamoto
July 24, 2019
Programming
0
550
Playing Sheet presentation style on iOS 13
Shin Yamamoto
July 24, 2019
Tweet
Share
More Decks by Shin Yamamoto
See All by Shin Yamamoto
Meet CoreDevice and devicectl
scenee
0
210
DocCのドキュメントをGithub Pagesで公開する
scenee
2
540
SwiftライブラリのObjC対応における落とし穴と回避策
scenee
0
250
Testing a constraint-based layout of UIView
scenee
1
1.1k
Fluid Interfacesの実践
scenee
4
1.4k
Introducing Relax
scenee
0
500
Potatotips#7: Box C String Tip
scenee
0
2.7k
Other Decks in Programming
See All in Programming
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
Advanced App Shrinking Techniques
cbeyls
2
150
日付と正規化
megmogmog1965
0
140
CSC307 Lecture 11
javiergs
PRO
0
240
CSC307 Lecture 08
javiergs
PRO
0
330
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
1
620
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
実用的かつリーズナブルな 「Azure × Gemini × LINE」~キャラクターBot 実装ライブデモ~
tomodo_ysys
1
170
CSC307 Lecture 09
javiergs
PRO
1
500
はしめてのプログラミングとロボット制御
watawatavoltage
0
290
君たちはどうコードをレビューする (される) か / 大吉祥寺.pm
utgwkk
15
8.5k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
75
5.9k
Teambox: Starting and Learning
jrom
130
8.6k
Designing with Data
zakiwarfel
96
5k
Adopting Sorbet at Scale
ufuk
71
8.8k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Designing for Performance
lara
604
67k
Debugging Ruby Performance
tmm1
71
11k
We Have a Design System, Now What?
morganepeng
46
7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Transcript
Playing Sheet presentation style on iOS 13 Potatotips #63 19/7/24
@SmartNews Shin Yamamoto @scenee
• iOS Developer • Freelancer • Creator of FloatingPanel Hi,
I’m @scenee! https://github.com/SCENEE/FloatingPanel
What’s Sheet presentation style?
Sheet presentation style • New presentation style from iOS 13
• Mail.app • .pageSheet,.formSheet • Default style in iOS 13 (SDK) ◦ .automatic ≒.pageSheet
Sheet Fullscreen Content Non immersive 非没入型 Immersive 没入型 Dismiss •
Tapping a button • Swiping down (optional) Tapping a button Modality: Sheet and Fullscreen https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/modality/
Migration notes • Add a button to dismiss • Care
the swipe-to-dismiss action • View Controller life cycle
Presenting View Controller Life Cycle Sheet Fullscreen viewWillAppear -- Invoked
viewDidAppear -- Invoked viewWillDisappear -- Invoked viewDidDisappear -- Invoked
Presented View Controller Life Cycle Sheet Fullscreen viewWillAppear Invoked Invoked
viewDidAppear Invoked Invoked viewWillDisappear Multiple invoked Invoked viewDidDisappear Invoked Invoked
WWDC19 Sessions • What’s New in iOS Design https://developer.apple.com/videos/play/wwdc2019/808 •
Modernizing Your UI for iOS 13 https://developer.apple.com/videos/play/wwdc2019/224
Sheet presentation features • Swipe to dismiss • Sheet bounce
• Scroll integration
Sheet features • Swipe to dismiss (customizable) • Sheet bounce
• Scroll integration
• Disable to dismiss ◦ Set .isModalnPresentation to true ◦
UIAdaptivePresentationControllerDelegate ▪ Return false in presentationControllerShouldDismiss Swipe to dismiss
• Detect a dismiss action ◦ UIAdaptivePresentationControllerDelegate ▪ presentationControllerDidAttempToDismiss ▪
presentationControllerWillDismiss ▪ presentationControllerDidDismiss Swipe to dismiss
I wonder how to add Mail.app-like UI to suspend and
resume a task
Demo
How to implement • Dismiss buttons in NavigationBar on swiping
up
How to implement • Stop dropping a modal view at
a position Y.
How to implement • Change state of the presenting view
controller
None
None
Recap • Sheet presentation style as default in iOS 13
• A few APIs to customize the behavior • Imitate a task suspending UI using presentedView
Thanks you!