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

如何在iOS 15中以模态方式呈现半屏视图?

iOS 15 实现半屏模态视图的正确方法

直接修改视图的frame(height:)对sheet模态无效,因为sheet的容器高度由系统的呈现控制器控制,iOS 15开始提供了官方的方式来指定模态视图的高度,具体实现方法如下:

核心实现步骤

  • 使用.presentationDetents()修饰器指定模态视图的可用高度,系统预定义了.medium(半屏高度)和.large(全屏高度)两种选项,也支持自定义具体高度。
  • 可选添加.presentationDragIndicator(.visible)显示拖拽指示器,方便用户调整模态视图高度。

完整代码示例

struct ContentView: View {
    @State private var showSheet = false
    
    var body: some View {
        Button("打开半屏模态") {
            showSheet = true
        }
        .sheet(isPresented: $showSheet) {
            // 这里放入你的模态视图内容
            VStack {
                Text("半屏模态视图")
                    .font(.title)
                Spacer()
            }
            .padding()
            .background(Color(.systemBackground))
        }
        // 指定半屏高度
        .presentationDetents([.medium])
        // 显示顶部拖拽指示器
        .presentationDragIndicator(.visible)
    }
}

扩展说明

  • 如果需要支持半屏和全屏切换,可传入多个高度选项:.presentationDetents([.medium, .large])
  • 自定义高度可以用.height(CGFloat),比如.presentationDetents([.height(350)])来指定固定高度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:55:04