gpt4 book ai didi

swift - 如何通过按其他按钮来更改一个按钮的图像?

转载 作者:行者123 更新时间:2023-11-30 10:10:17 24 4
gpt4 key购买 nike

在 View Controller 上我有 101 个按钮。如果按下前 100 个按钮之一,我想更改 101 号按钮的图像(我在这个项目中有 100 个图像;image1、image2、image3 等)

所以我通过给每个按钮一个从 0-100 的标签,然后根据 sender.tag 创建一个 switch 语句来完成此操作

@IBOutlet weak var button101 : UIButton!

var i = 1

// I hooked up all the other 100 buttons to a single IBAction
@IBAction func buttonTapped(sender: UIButton) {

switch sender.tag {

case 0: i = 1

let image = UIImage (named: "image\(i)")
button101.setImage(image, forState:.Normal)

case 1: i = 2

let image = UIImage (named: "image\(i)")
button101.setImage(image, forState:.Normal)

case 2: i = 3

let image = UIImage (named: "image\(i)")
button101.setImage(image, forState:.Normal)

case ..: // etc. until case 99 (because button 100 has tag 99)

default: break

这个 super 难看的代码有效:它将 101 号按钮的图像更改为指定的图像(i)。但我想要一个更优雅、更好的解决方案。

我有 2 个问题:

  1. 如何以更好的方式初始化“图像”常量/变量(在 IBAction 之外)?
  2. 使用什么样的(循环)语句来代替这个大型 switch 语句?所以:我想确定按下了哪个按钮,然后更新 var i 的值,循环遍历图像并使用图像(i)查找并更新button101的图像。

我希望我的问题很清楚。如果不是,请告诉我。非常感谢帮助!

最佳答案

您的 switch 语句的作用与:

if sender.tag < 100 {
let image = UIImage (named: "image\(sender.tag + 1)")
button101.setImage(image, forState:.Normal)
}

如果你愿意的话,你可以用 var UIImage: UIImage! 将你的 UIImage 放在 ViewController 的顶部,但我不这样做看看有什么理由这样做。

关于swift - 如何通过按其他按钮来更改一个按钮的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33352498/

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