Swift,Xcode:单击时更改UIButton背景和文本
我想在单击时更改按钮的背景和文本,我尝试了几种SO解决方案,但都不起作用,您可以看到我在项目中尝试的内容:Swift,Xcode:单击时更改UIButton背景和文本,xcode,swift,Xcode,Swift,我想在单击时更改按钮的背景和文本,我尝试了几种SO解决方案,但都不起作用,您可以看到我在项目中尝试的内容: 我试着通过放置一个简单的打印语句来调试它,但它看起来似乎永远不会去调试它。ui按钮有一种设置标题颜色的方法。因此,如果您有一个名为myBtn的UIButton IBOutlet: myBtn.setTitleColor(UIColor.blackColor(), forState: .Highlighted) 以及在触摸时更改按钮的文本: myBtn.setTitle("This bu
我试着通过放置一个简单的打印语句来调试它,但它看起来似乎永远不会去调试它。ui按钮有一种设置标题颜色的方法。因此,如果您有一个名为myBtn的UIButton IBOutlet:
myBtn.setTitleColor(UIColor.blackColor(), forState: .Highlighted)
以及在触摸时更改按钮的文本:
myBtn.setTitle("This button was touched", forState: .Highlighted)
至于背景色的设置,您可以为UIButton添加一个扩展,它允许您执行以下操作:
extension UIButton {
private func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRectMake(0.0, 0.0, 1.0, 1.0)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
func setBackgroundColor(color: UIColor, forUIControlState state: UIControlState) {
self.setBackgroundImage(imageWithColor(color), forState: state)
}
}
然后你可以做:
myBtn.setBackgroundColor(UIColor.grayColor(), forUIControlState: .Highlighted)
希望这有帮助 解决方案:
1从UIButton创建一个iAction,也可以创建一个名为button的iButtol
编辑:根据您的要求,如何在触摸按钮时触发,而不是松开按钮?:
2.这样做:
@IBAction func changes (sender: UIButton) {
button.backgroundColor = UIColor.blueColor()
button.setTitle("Button Title", forState: UIControlState.Normal)
}
您的UIButton@IBOutlet closePop连接到一个与closePop同名的@IBAction。closePop iAction只会解除helpViewController—它对文本或按钮颜色没有任何作用
您的另一个@iAction函数,如,您尝试设置颜色和打印是否正常?没有连接到按钮,并且从未调用 谢谢,但是当我在上面释放鼠标时,背景只显示为蓝色,当我点击它时,有没有办法做到这一点?谢谢,这正是我想要的,我在点击后得到了这个错误,它变为灰色:2016-05-15 16:18:15.708 ModalTest3[18234:2955837]-[ModalTest3.helpViewController按钮更改:]:发送到实例0x7fb9238abed0 2016-05-15 16:18:15.712 ModalTest3[18234:2955837]***由于未捕获异常“NSInvalidArgumentException”终止应用程序,原因:'-[ModalTest3.helpViewController按钮更改:]:无法识别的选择器发送到实例0x7fb9238abed0'@Snorlax与我的答案无关:/n这一定与情节提要设置或其他代码有关:如果有人在此处查看并得到相同的错误,我出错的原因是我的按钮中有额外的功能…右键单击按钮并删除您没有的功能/插座using@Snorlax事实上,永远记得清理你的IBActions和iBaOutlet!谢谢你的澄清!