gpt4 book ai didi

swift - 使用 UITextField 字符串更改 UIView 颜色

转载 作者:行者123 更新时间:2023-11-28 07:26:09 25 4
gpt4 key购买 nike

我有一个非常简单的应用程序,可以将缺席/存在发送到 Firestore,标签会更改为发送到服务器的内容。

UILabel 位于 UIView 中,当标签显示不存在时,我想将 View 的颜色更改为红色,显示时显示为绿色。

我该怎么做?

@IBOutlet weak var p1ViewColor: UIView!
@IBOutlet weak var p1Label: UILabel!
@IBOutlet weak var p1ABTF: UITextField!
@IBOutlet weak var p1PRTF: UITextField!


// fetch data and display it
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
pListener = docRef.addSnapshotListener { (docSnapshot, error ) in
guard let docSnapshot = docSnapshot, docSnapshot.exists else { return }
let myData = docSnapshot.data()
let absent1 = myData?["Absent"] as? String ?? ""
let present1 = myData?["Present"] as? String ?? ""
self.p1Label.text = "\(absent1) \(present1)"

}
}

最佳答案

例如,您可以简单地设置 p1ViewColor.backgroundColor = UIColor.red

但首先你应该重新设计你的数据结构,这就是你苦苦挣扎的原因。

据我所知,可以有两种状态 Present 和 Absent,这可以通过 docSnapshot 中的简单 Bool 来实现。假设有一个简单的变量,名为 "Present",如果存在则为 true,如果不存在则为 false,您的代码可能如下所示:

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
pListener = docRef.addSnapshotListener { (docSnapshot, error ) in
guard let docSnapshot = docSnapshot, docSnapshot.exists else { return }
guard let myData = docSnapshot.data() else { return }

let present: Bool = myData["Present"] // "Present" is now a Boolean

self.p1Label.text = present ? "Present" : "Absent"
p1ViewColor.backgroundColor = present ? .green : .red
}
}

更漂亮,更易于阅读。

关于swift - 使用 UITextField 字符串更改 UIView 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56572639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com