【发布时间】:2018-11-28 13:35:46
【问题描述】:
我创建了一个有四个按钮的视图控制器。在每个按钮上,都会在按钮上放置一个复选标记的图像,但在加载视图时会隐藏。选择按钮后,该按钮上应显示复选标记,以通知用户系统已进行选择。如果用户在屏幕上选择不同的按钮,我希望原始按钮复选标记消失,复选标记出现在新选择上。
当我运行软件并加载视图时,一切正常。问题是在我做出第一个按钮选择之后。当我在视图加载后第一次单击按钮时,复选标记将按原样出现在该视图上。一旦我尝试选择第二个按钮,我就无法选择它,并且复选标记停留在选择的第一个按钮上。
这个函数的代码如下:
@IBAction func nomineeSelected(_ sender: UIButton) {
if sender == optionA {
checkboxA.hideBox = false
checkboxA.on = true
checkboxB.isHidden = true
checkBoxC.isHidden = true
checkBoxD.isHidden = true
} else if sender == optionB {
checkboxB.hideBox = false
checkboxB.on = true
checkboxA.isHidden = true
checkBoxC.isHidden = true
checkBoxD.isHidden = true
checkBoxD.isHidden = true
} else if sender == optionC {
checkBoxC.hideBox = false
checkBoxC.on = true
checkboxA.isHidden = true
checkboxB.isHidden = true
checkBoxD.isHidden = true
} else {
checkBoxD.hideBox = false
checkBoxD.on = true
checkboxA.isHidden = true
checkboxB.isHidden = true
checkBoxC.isHidden = true
}
}
【问题讨论】:
-
您是否将 IBAction 正确添加到所有按钮?如果'else'块被正确执行,你可以记录吗?我仍然会为按钮添加标签,并通过切换发件人的标签来替换 if-else。
-
@Josh 我将其切换为 switch 语句,并通过在每种情况下添加打印行来测试是否选择了每个按钮。系统会选择每个案例,但未显示复选标记。
-
在某处托管您的代码。会尽力帮忙的。
标签: ios swift if-statement uibutton ibaction