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

Xcode 14中.previewLayout(PreviewLayout.fixed)失效问题求助

解决Xcode 14中SwiftUI固定尺寸预览异常的问题

方法1:调整预览修饰链顺序并添加自定义名称

Xcode 14的预览系统有时会优先加载设备模板,需将.previewLayout(PreviewLayout.fixed(width: width, height: height))放在预览修饰链的最后,同时添加自定义预览名称,避免系统默认使用设备样式:

struct YourView_Previews: PreviewProvider {
    static var previews: some View {
        YourView()
            .previewLayout(PreviewLayout.fixed(width: 300, height: 200))
            .previewDisplayName("Fixed Size Preview")
    }
}

方法2:强制覆盖设备尺寸类

通过添加环境变量覆盖设备默认的尺寸类,让固定布局设置生效:

struct YourView_Previews: PreviewProvider {
    static var previews: some View {
        YourView()
            .previewLayout(PreviewLayout.fixed(width: 300, height: 200))
            .environment(\.horizontalSizeClass, .compact)
            .environment(\.verticalSizeClass, .regular)
    }
}

方法3:重置Xcode预览缓存

若为缓存异常导致的问题,可尝试:

  • 关闭当前画布预览后重新打开
  • 清除Derived Data:点击Xcode顶部菜单File > Project Settings,点击Derived Data路径旁的箭头,删除对应文件夹后重启Xcode

方法4:用Group包裹预览视图

部分场景下,用Group包裹视图可让预览系统正确识别固定布局配置:

struct YourView_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            YourView()
                .previewLayout(PreviewLayout.fixed(width: 300, height: 200))
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:45:37