如何使用 SwiftUI 呈现小页面?

Ccl*_*emm 5 modal-dialog ipad swift swiftui

我正在使用 SwiftUI 为 iPad 开发应用程序。我想展示一个页面,但尺寸较小。我正在使用,但无法更改页表的宽度。

.sheet(
    isPresented: self.$isEditing,
) {
    Text("My page sheet view")
}
Run Code Online (Sandbox Code Playgroud)

结果是:

我的应用程序页表

我怎样才能拥有 Apple 快捷方式应用程序的模态大小?

快捷方式应用

也许这是来自 Apple 的专有自定义视图,UIKit 不可用...非常感谢

小智 0

目前,您可以使用更小的 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"
        }

    }
Run Code Online (Sandbox Code Playgroud)