【问题标题】:Swift: How to subclass a UIButton?Swift:如何继承 UIButton?
【发布时间】:2015-02-17 15:01:35
【问题描述】:

我想要一个简单的类,当它被选中时,它会改变按钮上的背景和文本颜色。

我有这个:

class buttonSelected : UIButton {        
    override var highlighted: Bool {
        get {
            return super.highlighted

        }
        set {                
                backgroundColor = UIColor(red: 0.27, green: 0.29, blue: 0.31, alpha: 1.0)
                //backgroundColor = UIColor.whiteColor()
                setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
                println(tag)
                super.highlighted = newValue
        }
    }        
}

这种子类化效果很好。我手动将标签添加到每个单独的按钮。 第一个问题是为什么

pritnln(tag)

显示两次?

当用户再次按下按钮时,最好的恢复方式是什么。我不能再次突出显示子类,并且只有选中的,禁用的。我通过 cmd 在突出显示的文本上获取此信息。

【问题讨论】:

    标签: xcode swift uibutton


    【解决方案1】:

    关于第一个问题,println(tag) 显示两次,因为突出显示的值更改了两次:第一次是单击按钮时(其值为 true),其次是释放单击时(其值为 false)

    关于第二个问题,我认为达到所需内容的最佳方法是覆盖选定的 var 并根据 newValue 在其 set 方法上设置颜色,但要达到这一点,你必须以某种方式更改选定的值,我的第一个想法是使用您已经通过这样做覆盖的突出显示的var

    override var highlighted: Bool {
        get {
            return super.highlighted
    
        }
        set {
    
                if(newValue){
                    self.selected = !self.selected
                }
                super.highlighted = newValue
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 2018-04-16
      • 2016-01-16
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多