使用Swift轻触时更改按钮的背景色

使用Swift轻触时更改按钮的背景色,swift,uibutton,swift4,Swift,Uibutton,Swift4,我正在尝试更改点击按钮的背景色。点击按钮时,应更改背景颜色。但我的问题是,我需要两个水龙头为这个事件。我不明白为什么 我的代码: cuestionesc.enumerated()中(索引、提示)的{ 让buttonYes=UIButton() buttonYes.backgroundColor=.green buttonYes.titleEdgeInsets=UIEdgeInsets(顶部:-10,左侧:-10,底部:-10,右侧:-10)//在文本周围添加填充 buttonYes.conten

我正在尝试更改点击按钮的背景色。点击按钮时,应更改
背景颜色
。但我的问题是,我需要两个水龙头为这个事件。我不明白为什么

我的代码:

cuestionesc.enumerated()中(索引、提示)的
{
让buttonYes=UIButton()
buttonYes.backgroundColor=.green
buttonYes.titleEdgeInsets=UIEdgeInsets(顶部:-10,左侧:-10,底部:-10,右侧:-10)//在文本周围添加填充
buttonYes.contentEdgeInsets=UIEdgeInsets(顶部:5,左侧:5,底部:5,右侧:5)
buttonYes.tag=1
buttonYes.setTitle(“是”,用于:。正常)
buttonYes.addTarget(自身,操作:#选择器(buttonActionYesNo),用于:.touchUpInside)
let buttonNo=UIButton()
按钮否。背景颜色=。红色
buttonNo.titleEdgeInsets=UIEdgeInsets(顶部:-10,左侧:-10,底部:-10,右侧:-10)//在文本周围添加填充
buttonNo.contentEdgeInsets=UIEdgeInsets(顶部:5,左侧:5,底部:5,右侧:5)
buttonNo.tag=2
buttonNo.setTitle(“否”,用于:。正常)
buttonNo.addTarget(自身,操作:#选择器(buttonActionYesNo),用于:。touchUpInside)
stackViewH.addArrangedSubview(按钮项)
stackViewH.addArrangedSubview(按钮否)
}
@objc func按钮选项否(发件人:UIButton!){
打印(sender.tag)
sender.backgroundColor=.gray
}

当我点击按钮一次,它就会打印标签。但我需要另外点击一次,以更改按钮的
背景色。我不理解这种逻辑。

问题可能是你没有得到重画,因为按钮正忙于为点击设置动画。尝试在
sender.backgroundColor=.gray
周围添加
delay
。从一个大的延迟开始,比如1秒,看看这是否有帮助。如果是这样的话,试着缩短延迟。也许试着。触地得分,而不是。触地得分,看看这是否有区别?是的,我试过了。触地得分,。触地得分。。。所有事件。。。但什么也没发生。奇怪的是,它确实在第一次触摸时读取打印内容,但只有在第二次触摸时颜色才会改变。我还尝试了一个新线程的延迟,但它似乎也不起作用。可能是