gpt4 book ai didi

ios - SwiftUI:在预览中渲染一个对象,在设备上渲染另一个对象

转载 作者:行者123 更新时间:2023-11-29 05:10:46 30 4
gpt4 key购买 nike

我试图做这样的事情:

        #if DEBUG
Color.black.edgesIgnoringSafeArea(.all)
#else
// render camera view
#endif

但我真的很想做这样的事情:

        #if PREVIEW
Color.black.edgesIgnoringSafeArea(.all)
#else
// render camera view
#endif

我希望预览窗口仅显示黑色背景(当然,因为预览中不支持相机),然后当我在物理设备上运行项目时显示相机。

但是,只要您不在 Release 模式下运行,DEBUG 似乎都是 true。我考虑过向构造函数添加一个 isPreview 参数(默认值为 false),并在 View 的 PreviewProvider 内部传递 true >,但这似乎是一种倒退的方法。

是否有相当于 #if DEBUG 仅适用于预览版的功能?

最佳答案

我不喜欢它,但似乎一种方法是设置一个文件范围变量 isPreview,将其实例化为 false,然后更改它在 PreviewProviderpreviews 方法中设置为 true,然后根据该值有条件地渲染 View 。

实例化该值并在 PreviewProvider 内更改它

fileprivate var isPreview = false

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
isPreview = true
return MyView()
}
}

然后使用它有条件地渲染 MyView 内的内容:

 if(isPreview) {
// render only in preview
} else {
// render only in simulator and device
}

我希望有人知道更干净的方法。

关于ios - SwiftUI:在预览中渲染一个对象,在设备上渲染另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59706884/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com