You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iPadOS16中设置SwiftUI Sheet宽度与屏幕同宽?

实现与屏幕宽度一致的SwiftUI Sheet(适配iPadOS16)

在iPadOS16上,默认Sheet采用窄幅的formSheet样式,仅设置presentationDetents无法改变其宽度。要实现全屏宽度的Sheet,需调整Sheet的展示样式并配合相关修饰符,具体修改如下:

修改后的代码

struct ContentView: View {
    @State private var showSheet = false
    
    var body: some View {
        Button("View Sheet") {
            showSheet = true
        }
        .sheet(isPresented: $showSheet) {
            Text("HELLO")
                .frame(maxWidth: .infinity, maxHeight: .infinity)
                .background(Color.white)
        }
        .presentationStyle(.pageSheet)
        .presentationDetents([.large])
        .presentationCornerRadius(0)
    }
}

关键说明

  • .presentationStyle(.pageSheet):将Sheet样式切换为pageSheet,该样式在iPad上会占据整个屏幕宽度,替代默认的窄幅样式。
  • .presentationDetents([.large]):让Sheet展开至最大可用高度,配合宽度设置实现全屏级的展示效果。
  • .presentationCornerRadius(0):可选设置,移除Sheet顶部的默认圆角,使其完全贴合屏幕边缘。
  • 内部视图的.frame(maxWidth: .infinity, maxHeight: .infinity):确保Sheet内的内容填满整个Sheet区域,避免出现留白。

内容的提问来源于stack exchange,提问作者danifm1321

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:55:21