基本上,我的主屏幕上有三个按钮。
当我选择其中一个按钮时,我希望所选按钮上的文字更改为粗体并更改颜色(蓝色)。
当我选择不同的按钮时,我希望新选择的按钮更改为粗体并更改颜色(蓝色),以及之前选择的按钮将恢复正常。 (非粗体和黑色文字)
我有这些按钮向脚本发送动作。
这就是我所拥有的,我似乎无法让它发挥作用。非常感谢帮助!
@IBAction func buttonOne(sender: UIButton){
sender.setTitleColor(UIColor.blueColor(), forState: UIControlState.Highlighted)
}
我已经尝试过了。在UIControlState上选择了.Highlighted和.Selected,似乎都不起作用。我也试过以下,但我不能让它工作。
@IBAction func buttonOne(sender: UIButton){
sender.titleLabel?.textColor = UIColor.blueColor()
}
我认为既然发件人是UIButton,那就是点击的按钮,从中取出值并重置它们就行了。我相信我错过了一些东西。
谢谢
答案 0 :(得分:4)
听起来像你想要UIControlState.Normal
Selected
不执行任何操作,Highlighted
仅在您按下按钮时才会执行。
在此处查看更多信息:https://developer.apple.com/library/ios/documentation/uikit/reference/uicontrol_class/index.html#//apple_ref/doc/constant_group/Control_State
答案 1 :(得分:2)
也许你可以做一个变换......
@IBAction func buttonPressed(sender: UIButton) {
sender.titleLabel!.textColor = UIColor.blueColor()
sender.transform = CGAffineTransformMakeScale(0.8, 0.8)
}
@IBAction func buttonReleased(sender: UIButton) {
sender.titleLabel!.textColor = UIColor.redColor()
sender.transform = CGAffineTransformIdentity
}
答案 2 :(得分:0)
为所有按钮提供标签,将每个按钮动作连接到同一个功能并尝试以下代码:
@IBAction func butnClicked(sender:UIButton){
for tg in 1...2 {
print(sender.tag)
let tmpButton = self.view.viewWithTag(tg) as? UIButton
if tmpButton?.tag == sender.tag {
tmpButton?.setTitleColor(.red, for: .normal)
} else {
tmpButton?.setTitleColor(.gray, for: .normal)
}
}
希望会有所帮助。