我有5个不同的按钮,我希望用户能够选择一个,如果它没有被选中,如果它已被选中则取消选择,同时取消选择另一个按钮,如果它被选中
normal =未选中时按钮的图像填充=选中时按钮的图像
为此,我创建了一个if / else语句:
@IBAction func option1ButtonAction(sender:AnyObject){
if (option1Button.currentImage == UIImage(named: "normal")) {
if option2Button.currentImage == UIImage(named: "filled") || option3Button.currentImage == UIImage(named: "filled") || option4Button.currentImage == UIImage(named: "filled") || option5Button.currentImage == UIImage(named: "filled") {
option1Button.setImage(filled, forState: .Normal)
option2Button.setImage(normal, forState: .Normal)
option3Button.setImage(normal, forState: .Normal)
option4Button.setImage(normal, forState: .Normal)
option5Button.setImage(normal, forState: .Normal)
}
else {
option1Button.setImage(filled, forState: .Normal)
}
}
else {
option1Button.setImage(normal, forState: .Normal)
}
} 之后我做了一个if option1Button.currentImage == UIImage(命名:"填充“)语句。一切都按照我想要的方式运作,但是我有一个问题。每当用户按下主页按钮然后再返回应用程序时,按钮仍然具有“正常”图像,即使单击也是如此。
在viewDidDisappear函数中,我将以下代码用于修复此问题:
option1Button.setImage(normal, forState: .Normal)
option2Button.setImage(normal, forState: .Normal)
option3Button.setImage(normal, forState: .Normal)
option4Button.setImage(normal, forState: .Normal)
option5Button.setImage(normal, forState: .Normal)
但我仍然遇到问题。如果有任何帮助,我将不胜感激。
答案 0 :(得分:0)
单击时需要从按钮更改图像!我明白了吗?
对于你的问题,我相信你可以做的不同。我举了一个代码。
首先在按钮中设置状态图像。
option1Button.setImage(normal, forState: UIControlState.Normal);
option1Button.setImage(filled, forState: UIControlState.Disabled);
option2Button.setImage(normal, forState: UIControlState.Normal);
option2Button.setImage(filled, forState: UIControlState.Disabled);
第二个我做了一个功能,这个功能改变了按钮的状态。
selectButton(button:UIButton)
{
option1Button.enabled = button != option1Button;
option2Button.enabled = button != option2Button;
}
现在你只需按行动方式实施,其他细节是你不需要为每个按钮创建一个功能。 @IBAction func option1ButtonAction(sender: AnyObject)
只创建一个操作@IBAction func onButtonClicked(sender: AnyObject)
,并且像此处的所有按钮一样...请记住只在selectButton(button:UIButton)
功能中增加按钮,或者如果您愿意,可以创建一个集合并按下按钮在selectButton
@IBAction func onButtonClicked(sender: AnyObject) {
if let clickedButton = sender as? UIButton{
selectButton(clickedButton);
}
}
如果我理解你的问题,我希望能帮到你!