【发布时间】:2018-08-21 20:10:53
【问题描述】:
目前我们有一个带有 5 个按钮的单元格,当按下一个按钮时,它会变成白色,而所有其他按钮都会变成黑色。按钮上有一个单独的复选标记图像视图,将根据按钮是否被选中而被选中或取消选中。太胖了,这适用于 imageView:
@IBAction func changeColor(_ sender: Any) {
guard let button = sender as? UIButton else {
return
}
self.selectedCheckMarkImageView1.isHidden = button.tag != 1
self.selectedCheckMarkImageView2.isHidden = button.tag != 2
self.selectedCheckMarkImageView3.isHidden = button.tag != 3
self.selectedCheckMarkImageView4.isHidden = button.tag != 4
self.selectedCheckMarkImageView5.isHidden = button.tag != 5
}
但是当尝试使用相同的方法来更改按钮图像时:
button.setImage(UIImage(named: "LR - Nano White - Selected")!, for: .normal) = button.tag != 1
发生错误:
无法赋值:函数调用返回不可变值
我尝试将它放在这样的 switch 语句中:
switch (button.tag) {
case != 1: //error occurs here
default:
//
}
但得到错误:
'!=' 不是前缀一元运算符
关于如何解决这个问题的任何想法?
【问题讨论】:
-
case 应该有一个
Int因为标签是Int? -
删除
!=并检查匹配的案例,例如case 1: -
你应该重新设置你的
@IBOutlet,并选择参数类型为UIButton而不是Any。这样,就不需要强制转换(强制或有条件的)。
标签: ios swift uibutton switch-statement