目前,我必须实现底部工作表。我找到了我需要的例子。
这个组件系统组件是swift还是swiftui的? 还是我需要自己实施?
一开始我用ZStack实现,拖动手势但动画不是我期望的。 我需要有关是否存在如上图所示模态的
.sheet(isPresented: Bool, content: View)
之类的组件的信息。
正如我们的朋友之前所说,这是一张床单。在工作表中,您可以定义新视图或调用任何视图。然后,您必须使用修饰符 .presentationDetents 接收一组PresentationDetents 来说明视图在屏幕上出现时必须停止的位置。此修饰符必须应用于工作表的内容,而不是直接应用于工作表。
struct ContentView: View {
@State var isSheetShown = false
var body: some View {
VStack {
Button("Show view"){
isSheetShown = true
}
}.sheet(isPresented: $isSheetShown, content: {
StackOfButtons()
.presentationDetents([.medium])
})
.padding()
}
}
最后,要创建堆栈类型的按钮,您可以将它们全部放入 HStack 中,分别给它们一些填充,在 HStack 中设置一点间距,并圆化堆栈的角。像这样的东西:
struct StackOfButtons: View {
var body: some View {
HStack(spacing: 2){
Button {
print("Hola que ase")
} label: {
Image(systemName: "list.bullet")
.padding()
.background(.thinMaterial)
.foregroundColor(.black)
}
Button {
print("Hola que ase")
} label: {
Image(systemName: "list.dash")
.padding()
.background(.thinMaterial)
.foregroundColor(.black)
}
Button {
print("Hola que ase")
} label: {
Image(systemName: "list.number")
.padding()
.background(.thinMaterial)
.foregroundColor(.black)
}
}.cornerRadius(10)
}
}