【发布时间】:2026-02-06 15:20:15
【问题描述】:
我有一个由颜色列表组成的表格视图控制器。我希望用户能够为他或她最喜欢的颜色加注星标。我目前正在使用开关来做到这一点,但我想要一些更具视觉吸引力的东西。我认为一个按钮可能会起作用。但是,我希望按钮具有与开关相似的属性(例如:isOn 属性)。我该怎么做?
【问题讨论】:
标签: ios swift button click uiswitch
我有一个由颜色列表组成的表格视图控制器。我希望用户能够为他或她最喜欢的颜色加注星标。我目前正在使用开关来做到这一点,但我想要一些更具视觉吸引力的东西。我认为一个按钮可能会起作用。但是,我希望按钮具有与开关相似的属性(例如:isOn 属性)。我该怎么做?
【问题讨论】:
标签: ios swift button click uiswitch
UIButtons 还有类似开关的功能。
在 IB 中,在 Interface Builder 中为“Selected State Configuration”设置不同的图像。
然后,将其添加到按钮的@IBAction 中(其中“按钮”是按钮的名称):
self.button.selected = !self.button.selected
【讨论】:
这就是存在子类化的原因。这是一个未经测试的示例:
class StarButton : UIButton {
override var isSelected: Bool {
willSet {
let image = UIImage(named: newValue ? "FilledStar" : "EmptyStar")
self.setImage(image, for: .normal)
}
}
}
【讨论】: