シート(Sheet)とは?
シートは、表示されている画面の上に画面を表示するものです。
シートは、普通の画面遷移やモーダル表示とは違い、画面を下にスワイプすることで画面を閉じることが出来ます。
入力画面や設定画面などの一時的に表示するビューに適しています。
使い方

シートを使うには、sheetモディファイアを使います。
func sheet( isPresented : Binding<Bool> , onDismiss : ( ( ) -> Void)? , content : () -> Content ) -> View
isPresented : シートを表示するかどうかのフラグ
onDismiss : シートが閉じられた時の処理
content : シートで表示するビュー
isPresentedで表示・非表示を判断し、trueになった時に、シートとして「content」が表示されます。
以下は、シートを使っている例です。
@State var showSheet = false
var body: some View {
VStack {
Button(action: {
//シートを表示
showSheet = true
}, label: {
Text("シートを表示")
})
}
.sheet(isPresented: $showSheet) {
//表示するビュー
SheetView()
}
}
状態変数showSheetの先頭に$を付けたのをisPresentedに指定することで、trueになった時にシートが表示されます。
そして、SheetView()が表示されます。
シートが閉じられると、自動でisPresentedの値はfalseになります。
まとめ
シート(Sheet)は、特殊なモーダル表示のようなもの。
sheetモディファイアを使って実装する。
コメント