我正在尝试做这样的事情:
#if DEBUG
Color.black.edgesIgnoringSafeArea(.all)
#else
// render camera view
#endif
但是我真的很想做这样的事情:
#if PREVIEW
Color.black.edgesIgnoringSafeArea(.all)
#else
// render camera view
#endif
我希望预览窗口将仅显示黑色背景(当然,因为预览中不支持Camera),然后在物理设备上运行项目时显示摄像机。
但是,无论何时您不在DEBUG
模式下运行,Release
都是正确的。我曾考虑过向构造函数添加一个isPreview
参数,并使用默认值false
并将true
传递到视图的PreviewProvider
内部,但这似乎是一种向后的方法
是否只有#if DEBUG
等效于预览版?
答案 0 :(得分:0)
我不喜欢它,但是一种实现方法似乎是设置文件范围的变量isPreview
,将其实例化为false
,然后将其更改为true
在PreviewProvider
的{{1}}方法中,然后根据该值有条件地呈现视图。
实例化值并在previews
内对其进行更改
PreviewProvider
然后使用它有条件地渲染fileprivate var isPreview = false
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
isPreview = true
return MyView()
}
}
中的内容:
MyView
我希望有人知道更干净的方法。