我看到 sender.tag
通常用于按钮,但想知道它是否可以用于 UIView
?
场景是这样的:我有一些没有边框的文本输入,在每个文本输入的下面有一个薄的(大约 3px)UIView,它是深灰色的。所以看起来每个文本字段都有一个底部边框。对于每个空字段,我想将 UIView 颜色更改为红色。我认为,与其为每个单独的 socket 创建一个 socket ,我可以创建一个 socket 并给它们不同的标签编号并根据该编号更改颜色,但我不确定如何操作。
因此,如果只有一个字段为空:
if userName!.isEmpty {
validateUnderline.backgroundColor = UIColor.red
}
由于我对 swift 很陌生,我不知道使用 UIView 是否可以实现这一点。这就是我用按钮所做的:
@IBAction func notePressed(_ sender: UIButton) {
playSound(soundFileName: soundArray[sender.tag - 1])
}
最佳答案
1-您可以使用 IBOutletCollection 来满足您的要求。
@IBOutlet var underLineVIew: [UIView]!
将您的所有 View 连接到上面的 IBOutlet 并在任何地方使用它 -
underLineVIew[0].backgroundColor = UIColor.yellowColor()
2-您还可以尝试 UITextField 扩展。
extension UITextField {
func setBottomBorder() {
self.borderStyle = .none
self.layer.backgroundColor = UIColor.white.cgColor
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor.gray.cgColor
self.layer.shadowOffset = CGSize(width: 0.0, height: 1.0)
self.layer.shadowOpacity = 1.0
self.layer.shadowRadius = 0.0
}
}
关于ios - 使用 sender.tag 更改 UIView 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53394254/