Swift,Xcode:单击时更改UIButton背景和文本

Swift,Xcode:单击时更改UIButton背景和文本,xcode,swift,Xcode,Swift,我想在单击时更改按钮的背景和文本,我尝试了几种SO解决方案,但都不起作用,您可以看到我在项目中尝试的内容: 我试着通过放置一个简单的打印语句来调试它,但它看起来似乎永远不会去调试它。ui按钮有一种设置标题颜色的方法。因此,如果您有一个名为myBtn的UIButton IBOutlet: myBtn.setTitleColor(UIColor.blackColor(), forState: .Highlighted) 以及在触摸时更改按钮的文本: myBtn.setTitle("This bu

我想在单击时更改按钮的背景和文本,我尝试了几种SO解决方案,但都不起作用,您可以看到我在项目中尝试的内容:


我试着通过放置一个简单的打印语句来调试它,但它看起来似乎永远不会去调试它。

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!谢谢你的澄清!