struct ContentView: View {
    @State private var isRed = false
    
    var body: some View {
        Button("Click Me") {
            isRed.toggle()
        }
        .foregroundColor(isRed ? .red : /* some code */)
    }
}

有没有办法应用以下逻辑:

如果isRedtrue,则应用红色,否则恢复为该属性的默认值或继承值(如果有).

换句话说,SwiftUI中有没有类似于css中的initialinherit的关键词?

推荐答案

正如在 comments 中已经提到的,许多API接受nildefault / no change

struct ContentView: View {
    @State private var isRed = false
    
    var body: some View {
        Button("Click Me") {
            isRed.toggle()
        }
        .foregroundColor(isRed ? .red : nil)
    }
}

即使您指定了不同的色调 colored颜色 ,此操作也有效

struct ContentView: View {
    @State private var isRed = false
    
    var body: some View {
        Button("Click Me") {
            isRed.toggle()
        }
        .foregroundColor(isRed ? .red : nil)
        .tint(.yellow)
    }
   
}

Swift相关问答推荐

AirPods手势不发送AVAudioApp静音状态通知

如何更新Square Order?

RealityKit如何获得两个相对大小相同的ModelEntity?

我正在try 通过代码设置节中页眉和页脚的高度,但它不起作用

Swift iOS:确定贝塞尔曲线路径是否与 UIView 框架相交?

SwiftUI:列表背景为空列表时为黑色

将 ArgumentParser 与 Swift 并发一起使用

无法使用 RealityKit 播放 USDZ 动画

自定义 DispatchQueue 服务质量

获取具有关联类型的协议的self

如何确定扩展中的具体类型?

SwiftUI:调用以编程方式创建的视图的函数

无法从自定义动态框架(Swift)访问类

swift : 具有类型和值的枚举常量

如何以编程方式读取 wkwebview 的控制台日志(log)

在 unwind segue 之后执行 push segue

使用 Swift 以编程方式自定义 UITableViewCell

在 Swift 中覆盖 UIScrollView 的委托属性(就像 UICollectionView 一样)

TabView 在切换选项卡时重置导航堆栈

Switch 语句中的字符串:String不符合协议IntervalType