我有一个由一系列颜色组成的表视图控制器。我希望用户能够为他或她最喜欢的颜色加注星标。我目前正在使用开关来做这件事,但我想要一些更具视觉吸引力的东西。我认为一个按钮可能会起作用。但是,我希望按钮具有与开关类似的属性(例如:isOn属性)。我怎么能这样做?
答案 0 :(得分:1)
UIButton
也有类似功能的开关。
在IB中,在Interface Builder中为“选定状态配置”设置不同的图像。
然后,在您的按钮@IBAction
中添加此按钮(“按钮”是按钮的名称):
self.button.selected = !self.button.selected
答案 1 :(得分:0)
这就是子类化存在的原因。这是未经测试的示例:
class StarButton : UIButton {
override var isSelected: Bool {
willSet {
let image = UIImage(named: newValue ? "FilledStar" : "EmptyStar")
self.setImage(image, for: .normal)
}
}
}
答案 2 :(得分:0)