我有这4行为UIButton添加阴影:
option1Label.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.2).cgColor
option1Label.layer.shadowOffset = CGSize(width: 0.0, height: 1.0)
option1Label.layer.shadowOpacity = 1.0
option1Label.layer.shadowRadius = 3.0
但我也有4个不同的按钮,这会导致每个按钮重复一次,只需更改option1Label
中的数字。
也许是一个愚蠢的例子,但在CSS中,将相同的样式应用于多个元素看起来像这样:
.element1,
.element2,
.element3 {
color: #121212;
}
Swift 4中是否有任何方法可以将这4个按钮组合在一起并将它们全部应用到这4个样式中?
更新
更多代码可以查看正在发生的事情。 4个按钮也是IBOutlets,因为它们需要在某个时刻更改文本:
@IBOutlet weak var option1Label: UIButton!
@IBOutlet weak var option2Label: UIButton!
@IBOutlet weak var option3Label: UIButton!
@IBOutlet weak var option4Label: UIButton!
IBAction为:
@IBAction func answerButton(_ sender: UIButton) {
pickedAnswer = sender.tag
questionNumber += 1
}
答案 0 :(得分:1)
你可以子类化UIButton
并在那里添加阴影或做类似的事情:
let option1Label = UIButton()
let option2Label = UIButton()
let option3Label = UIButton()
let option4Label = UIButton()
[option1Label, option2Label, option3Label, option4Label].forEach { button in
button.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.2).cgColor
button.layer.shadowOffset = CGSize(width: 0.0, height: 1.0)
button.layer.shadowOpacity = 1.0
button.layer.shadowRadius = 3.0
}
标签/按钮命名让我感到困惑......:)