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

标签 swift uiview google-cloud-firestore uitextfield uilabel

我有一个非常简单的应用程序,可以将缺席/存在发送到 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/

相关文章:

iphone - 只允许触摸一个 UIView

api - firebase-admin - 身份验证错误 :TypeError: URL is not a constructor

arrays - 快速数组/字典建议

ios - 将几个列表合并到字典中

ios - UIView Swift 倾斜动画

iphone - UIButton和setImage : not working consistently - inconsistent

swift - Firestore数组查询超过10个元素(分页)

firebase - 在 FireStore 中订购数据

swift - 将 50 的 layer.cornerRadius 应用于按钮时出现奇怪的结果

ios - Today Extension 的 NSUserDefaults 不保存数据,iOS swift。不知道我在这里做错了什么