【发布时间】:2022-07-06 02:50:09
【问题描述】:
我正在尝试将两个参数传递给这个修饰符
.foregroundStyle(primary: ShapeStyle, secondary: ShapeStyle)
我希望主要参数基于 isTrue Bool 值,使用三元运算符,但出现错误。
它工作与这个修饰符的一个参数版本:
.foregroundStyle(style: ShapeStyle)
.foregroundStyle((isTrue) ? Color.green : Color.secondary) // no error, works
但是不能使用这个修饰符的两个参数版本:
.foregroundStyle(primary: ShapeStyle, secondary: ShapeStyle)
.foregroundStyle((isTrue) ? Color.green, Color.blue : Color.secondary, Color.green) // Error: Expected ':' after '? ...' in ternary expression
为什么它不起作用?如何摆脱错误?
完整代码:
Image(systemName: isTrue ? "clock.badge.checkmark.fill" : "clock.fill")
.symbolRenderingMode(.palette)
.foregroundStyle(Color.blue, Color.red) // no error, works
.foregroundStyle((isTrue) ? Color.green, Color.blue : Color.secondary, Color.green) // Error: Expected ':' after '? ...' in ternary expression
.foregroundStyle((isTrue) ? (Color.green, Color.red) : (Color.secondary, Color.white)) // Error: Expected ':' after '? ...' in ternary expression
【问题讨论】:
标签: swift xcode swiftui conditional-operator