【问题标题】:SwiftUI : Display preview in canvas with conditional layoutSwiftUI:使用条件布局在画布中显示预览
【发布时间】:2020-05-02 07:12:08
【问题描述】:

我正在构建一个带有一些条件控件的布局,具体取决于用户偏好。 例如,我仅在用户选择查看时才显示 Picker(分段)(用户在应用程序设置页面上的 UserDefaults 中将 Bool 设置为 true)。

我尝试在我的预览结构中将该 Bool 设置为 var 或常量,并且我设法让我的 Picker 显示在画布中,但我收到一个错误:“Argument passed to call that takes no arguments”:

这是我声明我的 Bool 的方式:

private var isBiqualif: Bool = UserDefaults.standard.bool(forKey: kbiQualif) // kbiQualif is constant string set in a separate file to avoid typos

这是我显示我的选择器的方式:

if isBiqualif { // User has activated this in settings
                Picker("", selection: $typeSelectorIndex) {
                        ForEach(0 ..< types.count) { index in
                            Text(self.types[index]).tag(index)
                          }
               }
                .pickerStyle(SegmentedPickerStyle())
                    Divider()

                } //  End of if statement for dual rating Picker

还有我最近的预览尝试:

struct CreateTakeoffView_Previews: PreviewProvider {
    static var previews: some View {

     let myBool = true
        return CreateTakeoffView(isBiqualif: myBool)
    }
}

有什么想法吗?

谢谢

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    不要让它private,这样你就隐藏了var,所以改为使用

    var isBiqualif: Bool = UserDefaults.standard.bool(forKey: kbiQualif)
    

    【讨论】:

    • 伙计,就这么简单!谢谢,我又学到了一些关于 var 作用域的东西......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多