[Online] potatotips #72 iOS/Android開発Tips共有会 https://potatotips.connpass.com/event/194575/
発表発表資料
サンプルコード https://gist.github.com/SatoTakeshiX/4c0aed5430f2a272d33ebcfd8192b5d6
1人でアプリを作る人を支えるSwiftUI開発レシピ https://nextpublishing.jp/book/12491.html
SwiftUIで作る開閉式メニュー2020 年 12 月 22 日佐藤タケシ[Online] potatotips #72 iOS/Android開発Tips共有会
View Slide
Who am I● Name● 佐藤タケシ(さとうたけし)● Company● Merpay, Inc.(2019/01 ~)● Role● Software Engineer (iOS)● Account● Twitter: @hatakenokakashi● Facebook: 佐藤剛士● GitHub: SatoTakeshiX
● SwiftUIを始める最適な一冊● SwiftUIの基礎を徹底解説○ レイアウトシステム○ 座標空間○ データ管理○ UIコンポーネント● 実践的なサンプルアプリ○ GitHub API○ お絵かきアプリ○ 写真フィルターアプリ● iOS 14対応○ LazyVStack、LazyVGrid、WidgetKit、@StateObjectなど「SwiftUI開発レシピ amazon」で検索!
豊富なサンプルアプリ● GitHubリポジトリー検索● お絵かきアプリ● 写真フィルターアプリ● TodoアプリをWidget対応「SwiftUI開発レシピ amazon」で検索!
SwiftUIで作る開閉式メニュー
下からにゅっと出るメニューを作ろう
Take 1
アニメーション子View親View
アニメーション子View親View値更新時にwithAnimationで囲う
アニメーション子Viewoffsetでviewを移動させる300は仮の数字(後で直す)
take 1 Safe Areaの隙間が気になりますね
Take 2
単純にignoresSafeAreaで無視してみると?
ボタンがSafe Area外に表示されていてだめですね♂
Take 3
SafeArea外には背景を置く子View
SafeArea外には背景を置く子View背景コンテンツをRectangleでつくる
SafeArea外には背景を置く子ViewiOS 14.2だと子Viewのgeometryが0になったので、親Viewからもらう
SafeArea外には背景を置く子View子ViewのViewサイズで移動させる
SafeArea外には背景を置く親Viewgeometry.safeAreaInsetsを子Viewに渡す
SafeArea外には背景を置く親View親ViewからSafeAreaをbottomだけ無視させる
Take 3 いい感じ。
まとめ● データ変更をwithAnimationで囲めばアニメーションする● GeometryReaderでsafeAreaInsetsを使って背景コンテンツを作成する
Sample Code● https://gist.github.com/SatoTakeshiX/4c0aed5430f2a272d33ebcfd8192b5d6