Mgw*_*gwd 1 gradient modifier swiftui
我想使用条件渐变将颜色应用于矩形(或其他任何东西)
像这样:
Rectangle().fill(useGradient ? .red.gradient : .red)
Run Code Online (Sandbox Code Playgroud)
但这会产生以下错误:
我可以创建两个视图并有条件地显示其中之一,但这似乎是重复的代码。
实现这一目标的最简单方法是什么?
示例代码(Xcode 14.0、iOS 16.0)
struct TestGradientView: View {
var useGradient = false
var body: some View {
Rectangle()
.fill(useGradient ? .red.gradient : .red)
.frame(width: 300, height: 440, alignment: .center)
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 三元运算符?:要求两个结果具有相同的类型。使用AnyShapeStyle()类型橡皮擦来统一类型:
Rectangle()
.fill(useGradient ? AnyShapeStyle(.red.gradient) : AnyShapeStyle(.red))
.frame(width: 300, height: 440, alignment: .center)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |