XCode 14下SwiftUI预览的Color Scheme循环失效,如何恢复旧行为?
XCode 14 恢复旧配色方案预览的解决思路
给你几个可行的解决办法,都能恢复旧版同时展示多配色预览的效果:
手动声明多配色预览
放弃用ForEach遍历,直接逐个声明浅色和深色模式的预览,Xcode 14能完美兼容,不会触发超时:static var previews: some View { Group { MyView() .preferredColorScheme(.light) .previewDisplayName("浅色模式") MyView() .preferredColorScheme(.dark) .previewDisplayName("深色模式") } }优化ForEach预览配置
如果不想放弃遍历写法,给每个预览添加明确的设备和显示名称,降低预览系统的处理压力:static var previews: some View { ForEach(ColorScheme.allCases, id: \.self) { scheme in MyView() .preferredColorScheme(scheme) .previewDisplayName(scheme == .light ? "浅色" : "深色") .previewDevice(PreviewDevice(rawValue: "iPhone 14")) // 指定具体设备,减少渲染负载 } }关闭自动预览刷新
如果你的MyView本身比较复杂,Xcode 14的自动刷新可能导致超时。可以点击预览界面右上角的"Auto Refresh"按钮关闭自动刷新,需要更新预览时手动点击刷新图标,避免系统资源过载。
内容的提问来源于stack exchange,提问作者flymg
相关产品推荐
相关产品推荐

