gpt4 book ai didi

swift - 如何更改点击 3 次后导航按钮的图像?

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

当用户点击 3 次时,我需要更改导航栏中 UIButton 的图像。每次点击都会显示不同的 UIImage 及其相应的 Collection View 。我让动画 Collection View 完美运行,但是...

如何在 Swift 中更改按钮图像?

我尝试了多种方法,但似乎无法使其工作,例如:

@IBAction func buttonTapped(sender: UIButton) {

if let myButton = UIImage(named:"btn1") {
sender.setImage(myButton, forState: .Normal)
}
if let myButton = UIImage(named:"btn2") {
sender.setImage(myButton, forState: .Normal)
}
if let myButton = UIImage(named:"btn3") {
sender.setImage(myButton, forState: .Normal)
}
}

有很多帖子涉及将 uibutton 更改为两种状态,例如秒表或播放/暂停,但我需要导航栏中的 3 种状态。

谢谢!

最佳答案

我认为有两种简单的方法可以做到这一点:

  1. 您可以在类中设置一个变量 Int,然后将其累加到 2,然后再次将其设置为 0,如下所示:

      var buttonCounter: Int = 0

    @IBAction func buttonTapped(sender: UIButton) {

    if buttonCounter == 0{
    let myButton = UIImage(named:"btn1")
    sender.setImage(myButton, forState: .Normal)
    buttonCounter++
    }
    else if buttonCounter == 1 {
    let myButton = UIImage(named:"btn2")
    sender.setImage(myButton, forState: .Normal)
    buttonCounter++
    }
    else {
    let myButton = UIImage(named:"btn3")
    sender.setImage(myButton, forState: .Normal)
    buttonCounter = 0
    }
    }
  2. 您可以执行几乎相同的操作,但您可以使用 UIButton 的 .tag 属性来代替使用变量。该标签是一个整数,通常用于找出哪个按钮调用 IBAction,但只有一个按钮调用该函数,因此您可以像这样使用它:

    @IBAction func buttonTapped(sender: UIButton) {

    if sender.tag == 0{
    let myButton = UIImage(named:"btn1")
    sender.setImage(myButton, forState: .Normal)
    sender.tag++
    }
    else if sender.tag == 1 {
    let myButton = UIImage(named:"btn2")
    sender.setImage(myButton, forState: .Normal)
    sender.tag++
    }
    else {
    let myButton = UIImage(named:"btn3")
    sender.setImage(myButton, forState: .Normal)
    sender.tag = 0
    }
    }

关于swift - 如何更改点击 3 次后导航按钮的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312183/

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