创建切换按钮时出现问题

时间:2018-07-10 20:36:50

标签: swift uibutton

我试图创建一个读为“ Special 1”的按钮,然后单击该按钮,该按钮显示为“ USED”,并且保持为“ USED”,不允许读者将其切换回原位。

例如,可以按下Twitter的“关注”按钮,然后将该按钮更改为“关注”。但是,在Twitter上,用户可以单击“关注”按钮,该按钮将变回“关注”。

对于我的应用程序,我希望用户能够单击“ Special 1”,然后将按钮更改为“ USED”,并永远保持这种状态。

下面是我到目前为止创建的附件代码。到目前为止,我的代码存在的问题是,当按钮被选中时,它不会显示“ Special 1”或“ USED”,它唯一包含的就是颜色。颜色改变了我想要的颜色,但是我无法使文字出现和改变。

import UIKit

class SpecialOneBTN: UIButton {

    var isOn = false

    override init(frame: CGRect) {
        super.init(frame: frame)
        initButton()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initButton()
    }

    func initButton() {
        layer.borderWidth = 2.0
        layer.cornerRadius = frame.size.height/2
        setTitleColor(UIColor(red: 255.0/255.0, green: 193.0/255.0, blue: 95.0/255.0, alpha: 1.0), for: .normal)
        addTarget(self, action: #selector(SpecialOneBTN.buttonPressed), for: .touchUpInside  )
    }

    @objc func buttonPressed() {
        activateButton(bool: !isOn)

    }

    func activateButton(bool: Bool) {
        isOn = bool
        let color = bool ? UIColor(red: 102.0/255.0, green: 102.0/255.0, blue: 100.0/255.0, alpha: 1.0) : UIColor(red: 255.0/255.0, green: 193.0/255.0, blue: 95.0/255.0, alpha: 1.0)
        let titleColor = bool ? UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0) : UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
        let title = bool ? "USED" : "Special 1"

        setTitle(title, for: .normal)
        setTitleColor(titleColor, for: .normal)
        backgroundColor = color
   }
}

0 个答案:

没有答案