每次按下时,如何将UIButton从A更改为B,再将B更改为A?
不是.normal
到.highlighted
,而是永久的。
我尝试了.highlighted
方法,因为我找不到永久代码,这是我的代码:
func ChangeButton() {
Button.setImage(A, for: .normal)
Button.setImage(B, for: .highlighted)
答案 0 :(得分:1)
感谢从另一个答案提到setBackgroundImage
到Xavier L.
请尝试以下代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet var button: UIButton!
var buttonActive = false
override func viewDidLoad() {
super.viewDidLoad()
button.setBackgroundImage(UIImage(named: "apple"), for: .normal)
}
@IBAction func buttonPressed() {
if buttonActive {
button.setBackgroundImage(UIImage(named: "apple"), for: .normal)
} else {
button.setBackgroundImage(UIImage(named: "pineapple"), for: .normal)
}
buttonActive = !buttonActive
}
}
N.B。在Stack Overflow上,您应该在询问之前执行一些操作。尝试包含您尝试过的一些代码。
答案 1 :(得分:0)
我建议更改backgroundImage,因为它会自动缩放,并且前面的按钮文字不会被覆盖。
如果它是自定义按钮,则在其初始化程序中:
self.addTarget(self, action: #selector(*yourfunctoswitchimages*), for: .touchUpInside)
...然后 yourfunctoswitchimages 可以检查当前背景图像是什么,并相应地切换它。
如果它不是自定义按钮,请在viewDidLoad或其他内容中添加目标。这里有很多示例代码。
在viewDidLoad()
中yourButt.addTarget(self, action: #selector(switcheroo), for: .touchUpInside)
视图控制器中的另一个功能:
func switcheroo()
{
if yourButt.currentBackgroundImage == image1
{
yourButt.setBackgroundImage(image2), for: .normal)
}
else { // ...set image to image1 }
}
yourButt当然是视图控制器的属性,这样它可以被viewDidLoad()和其中的其他函数访问。