点击 3 次时如何更改导航按钮的图像?
How to change the image of a navigation button when tapped 3 times?
我需要在用户点击 3 次时更改导航栏中 UIButton 的图像。每次点击都会显示不同的 UIImage 及其对应的集合视图。我让动画集合视图完美运行,但是...
如何在 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 的两种状态有关,例如秒表或 play/pause,但我需要导航栏中的 3 种状态。
谢谢!
我认为有两种简单的方法可以做到这一点:
您可以在 class 中设置一个 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
}
}
您可以做几乎相同的事情,但您可以使用 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
}
}
我需要在用户点击 3 次时更改导航栏中 UIButton 的图像。每次点击都会显示不同的 UIImage 及其对应的集合视图。我让动画集合视图完美运行,但是...
如何在 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 的两种状态有关,例如秒表或 play/pause,但我需要导航栏中的 3 种状态。
谢谢!
我认为有两种简单的方法可以做到这一点:
您可以在 class 中设置一个 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 } }
您可以做几乎相同的事情,但您可以使用 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 } }