[英]How can I present a small page sheet with SwiftUI?
目前,您可以使用更小的 actionSheet(iOS 14 或更早版本)/confirmationDialog(iOS 15 或更高版本),或者您可以使用SheeKit创建自己的定制表单。
对于一个 actionSheet/confirmationDialog 就足够的情况:
@State private var showingConfirm: Bool = false
@State private var actionSelection = ""
..
Group {
Button(action: {
showingConfirm.toggle()
}, label: {
Label("Demo")
})
}
// iOS 14
.actionSheet(isPresented: $showingConfirm, content: {
let action1 = ActionSheet.Button.default(Text("First action")) {
actionSelection = "First"
}
let action2 = ActionSheet.Button.default(Text("Second action")) {
actionSelection = "Second"
}
return ActionSheet(title: Text("Action Sheet"), message: Text("Message"), buttons: [action1, action2])
})
// or for iOS 15
.confirmationDialog("Action Sheet", isPresented: $showingConfirm, titleVisibility: .visible) {
Button("First action") {
actionSelection = "First"
}
Button("Second action") {
actionSelection = "Second"
}
}
虽然我不太了解 SwiftUI ,但我知道您想要的纸张尺寸(如第二个示例所示)至少可以在UIKit
中完成。
它被称为表单。 根据我对 SwiftUI 工作表的理解,它要呈现的工作表类型没有选项,在这种情况下,您示例中的工作表似乎等同于UIKit
的页面表。
但是,如果您对UIKit
方式感兴趣,请按以下方法操作:
// self shall be your ViewController
self.modalPresentationStyle = .formSheet
self.present(yourSheetViewController, animated: true, completion: nil)
基本上,您强制 View Controller 以表单样式呈现,然后呈现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.