鉴于工作表是系统提供的视图,我们可以使用的自定义选项是有限的,或者至少在涉及工作表的高度时是有限的。从 iOS 16 开始,我们在 SwiftUI 中获得了对它的控制权,不仅可以完整呈现模态内容,还可以呈现一半,甚至可以自定义高度。蛋糕上的樱桃是必要时以编程方式动态修改高度的选项。
让我们通过一个实际的例子来熟悉这一切,我们将在其中遇到改变工作表高度所需的少量代码。
我们将从在全新的 SwiftUI 视图中声明以下状态属性开始;其目的是控制工作表的呈现状态:
struct ContentView: View {
@State private var showSheet = false
var body: some View { ... }
}
在视图的主体中,我们将只有一个按钮来设置true属性showSheet。这将触发工作表的外观:
var body: some View {
Button("Show Sheet") {
showSheet = true
}
}
为了显示工作表,我们将使用sheet(isPresented:content:)视图修饰符修改按钮,提供绑定值showSheet作为参数:
Button("Show Sheet") { ... }
.sheet(isPresented: $showSheet) {
}
我们将作为内容添加到工作表中的内容在这里并不重要。出于演示目的,我们将添加一个VStack依次包含一个带有 SF Symbol 作为图像的 Image 视图和一个 Text 视图: