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
580
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
300
DocCのドキュメントをGithub Pagesで公開する
scenee
2
560
SwiftライブラリのObjC対応における落とし穴と回避策
scenee
0
270
Testing a constraint-based layout of UIView
scenee
1
1.2k
Fluid Interfacesの実践
scenee
4
1.5k
Introducing Relax
scenee
0
510
Potatotips#7: Box C String Tip
scenee
0
2.7k
Other Decks in Programming
See All in Programming
PagerDuty を軸にした On-Call 構築と運用課題の解決 / PagerDuty Japan Community Meetup 4
horimislime
1
100
Golang と Erlang
taiyow
8
1.8k
ActiveRecordの力でDBのメタデータを迅速に解析する
lnit
5
2.2k
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
3
350
CSC305 Lecture 13
javiergs
PRO
0
120
gopls を改造したら開発生産性が高まった
satorunooshie
8
230
watsonx.ai Dojo #3 プロンプトエンジニアリング入門
oniak3ibm
PRO
0
490
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
0
120
Android 15 でアクションバー表示時にステータスバーが白くなってしまう問題
tonionagauzzi
0
110
Server Driven Compose With Firebase
skydoves
0
350
のびしろを広げる巻き込まれ力:偶然を活かすキャリアの作り方/oso2024
takahashiikki
1
350
約9000個の自動テストの 時間を50分->10分に短縮 Flakyテストを1%以下に抑えた話
hatsu38
21
9k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
A Philosophy of Restraint
colly
203
16k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
13
1.9k
Agile that works and the tools we love
rasmusluckow
327
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
0
29
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
5
140
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
What's new in Ruby 2.0
geeforr
342
31k
Building Applications with DynamoDB
mza
90
6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
32
1.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!