gpt4 book ai didi

ios - 如何在 switch 语句中使用 !=?

转载 作者:行者123 更新时间:2023-11-28 10:38:42 26 4
gpt4 key购买 nike

目前我们有一个有 5 个按钮的单元格,当按下一个按钮时它会变成白色,而所有其他按钮都会变成黑色。按钮上有一个单独的复选标记 imageview,将根据按钮是否被选中来选中或取消选中。太胖了,这适用于 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

发生错误:

Cannot assign to value: function call returns immutable value

我试着把它放在这样的 switch 语句中:

  switch (button.tag) {

case != 1: //error occurs here


default:
//
}

但得到错误:

'!=' is not a prefix unary operator

关于如何解决这个问题有什么想法吗?

最佳答案

switch 是将 1 个值与一组固定的多个值进行比较的替代值,以选择要执行的单个执行分支。您会遇到这样一种情况,即根据多个不同的值检查多个值,并做出多种不同的响应。单个开关无法真正取代它。

相反,我建议使用 for 循环来减少重复。

let selectedCheckMarkImageViews = [
selectedCheckMarkImageView1,
selectedCheckMarkImageView2,
selectedCheckMarkImageView3,
selectedCheckMarkImageView4,
selectedCheckMarkImageView5,
]

let visbleImageViewIndex = button.tag // TODO: either number these 0..<4, or add 1 below
for (index, view) in selectedCheckMarkImageViews.enumerated() {
view.isHidden = visbleImageViewIndex != index
}

关于ios - 如何在 switch 语句中使用 !=?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com