【发布时间】:2021-10-22 22:58:23
【问题描述】:
我在 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
在另一个项目中使用这种类型的语法没有任何问题,我做了这个测试:
我复制了上面的代码块并把它放在我的另一个项目中并尝试编译。
我绝对没有错误。这是为什么呢?
谁能想到一个可能的原因,为什么我在一种情况下看到错误而不是另一种情况?
【问题讨论】:
-
在它确实工作的项目中,你有一个
View的扩展名包含在一个叫做if的地方——可能是这样的——stackoverflow.com/questions/57467353/…如果你不包括那个扩展,它不会工作,因为它不是 vanilla SwiftUI 的一部分 -
除了您的问题或答案!为什么这个
.if()修饰符?您可以只使用.overlay并在那里使用条件。不需要.if() -
@jnpdx;是的,我检查过,你是对的。
-
@swiftPunk;好的,我需要仔细看看如何使用覆盖。
-
@Michel:绝对不需要那个修饰符,它只是一种输入代码的奇特方式,看看我的答案。
标签: ios swift swiftui swiftui-environment