我有一个SwiftUI应用程序,它有一个按钮,可以使用.Sheet()修饰符触发弹出视图.然而,弹出式视图看起来太大了,我想把它变小.

我try 将弹出视图包装在VStack中,并使用.Frame()修饰符设置特定的帧大小,但这并没有改变视图的大小.

以下是我的代码示例:

struct ContentView: View {
    @State private var showingSmallView = false
    var body: some View {
        NavigationView {
            VStack {
                List {
                    Text("hi")
                    Text("hi")
                    Text("hi")
                }
                Button(action: { showingSmallView = true }){
                    Rectangle()
                        .frame(width: 50, height: 50)
                }
            }
        }
        .sheet(isPresented: $showingSmallView){
            VStack {
                smallView()
            }
            .frame(width: 200, height: 200)
        }
    }
}

struct smallView: View {
    var body: some View{
        Text("hda")
    }
}

我将感谢任何关于如何使弹出式视图更小的帮助或建议.

推荐答案

可以使用.presentationDetents修改器.您可以将该值更改为您需要的任何大小.您也可以使用非自定义值(即.medium.large).请参见下面的内容:

    struct ContentView: View {
    @State private var showingSmallView = false
    var body: some View {
        NavigationView {
            VStack {
                List {
                    Text("hi")
                    Text("hi")
                    Text("hi")
                }
                Button(action: { showingSmallView = true }){
                    Rectangle()
                        .frame(width: 50, height: 50)
                }
            }
        }
        .sheet(isPresented: $showingSmallView){
            VStack {
                smallView()
                    .presentationDetents([.height(100)]) // here! 
            }
            .frame(width: 200, height: 200)
        }
    }
}

struct smallView: View {
    var body: some View{
        Text("hda")
    }
}

Ios相关问答推荐

第三方框架的iOS隐私声明

更改文本在Flutter 中的位置

如何在应用程序中显示我的小部件的快照?

如何使用 AppIntents 在 SwiftUI 应用程序中打开特定视图

'DismissAction'类型的值没有成员'wrappedValue'在SwiftUI的Xcode中

弹出视图后使所有背景 UI 模糊

用溢出的长文本对齐 Flutter 中的行和列

如何将单个按钮传递到自定义 ConfirmationDialog

如何在不支持并发的自动关闭中修复'async'调用?

在iOS7半透明导航栏中获取正确的 colored颜色

警告:iPad:Icon-72.png:图标尺寸(0 x 0)

如何使用 swift 显示 .svg 图像

如何在 Xcode 4 中切换 .h 和 .m

UITableView 背景 colored颜色 在 iPad 上总是白色

由于 NSInvalidUnarchiveOperationException 导致 iOS11 WKWebview 崩溃

在 iPhone 应用程序中使用 SSL - 出口合规性

如何缩小 UIImage 并使其同时变得清晰/锐利而不是模糊?

iOS:以编程方式制作屏幕截图的最快、最高效的方法是什么?

文本未包含在 swift UI 中

UITableView:从空白部分隐藏标题