-4

我在SwiftUI应用程序中有以下代码块:

struct BtnTxtView: View {
    var theLabel:String
    var highLight: Bool

    var body: some View {
        let crnrRad:CGFloat = 5.0
        Text(theLabel)
            .foregroundColor(.blue)
            .padding(.vertical)
            .font(.largeTitle)
            .if (highLight) { $0
                .cornerRadius(crnrRad)
                .overlay(RoundedRectangle(cornerRadius: crnrRad)
                            .stroke(Color.purple, lineWidth: 4.0))
            }
    }
}

我收到此错误消息:

Value of type 'some View' has no member 'if'

在线上:

        .if (highLight) { $0

在另一个项目中使用这种类型的语法没有任何问题,我做了这个测试:

我复制了上面的代码块并将其放在我的另一个项目中并尝试编译。

我绝对没有错误。这是为什么?

谁能想到一个可能的原因,为什么我在一种情况下看到错误而不在另一种情况下看到错误?

4

1 回答 1

2

这里是你需要使用的代码,不需要那个.if()修饰符:

struct BtnTxtView: View {

    var theLabel:String
    var highLight: Bool

    var body: some View {
        
        let crnrRad:CGFloat = 5.0
        
        Text(theLabel)
            .foregroundColor(.blue)
            .padding(.vertical)
            .font(.largeTitle)
            .cornerRadius(highLight ? crnrRad : 0.0)
            .overlay(highLight ? RoundedRectangle(cornerRadius: crnrRad)
                .stroke(Color.purple, lineWidth: 4.0) : nil)
    }
}
于 2021-08-22T03:59:11.693 回答