我试图创建一个读为“ 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
}
}