用于更换开关的按钮

时间:2017-03-05 22:00:11

标签: ios swift button click uiswitch

我有一个由一系列颜色组成的表视图控制器。我希望用户能够为他或她最喜欢的颜色加注星标。我目前正在使用开关来做这件事,但我想要一些更具视觉吸引力的东西。我认为一个按钮可能会起作用。但是,我希望按钮具有与开关类似的属性(例如:isOn属性)。我怎么能这样做?

3 个答案:

答案 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)

您可以使用tableviewcell的accessoryType属性。您可以将其设置为.checkmark

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
}  

这将如下图所示 enter image description here