如何在每次按下时更改UIButton的图像
问题描述:
如何在每次按下按钮时将UIButton更改图像从A更改为B并将B再更改为A?如何在每次按下时更改UIButton的图像
不是.normal
到.highlighted
,但永久。 我已经试过.highlighted
方法,因为我无法找到永久的代码,这里是我的代码:
func ChangeButton() {
Button.setImage(A, for: .normal)
Button.setImage(B, for: .highlighted)
答
感谢您从对方的回答中提到setBackgroundImage
泽维尔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
}
}
注:在堆栈溢出时,您应该在询问之前执行一些操作。尝试包括你尝试过的一些代码。
+0
它的工作,感谢一百万 – Shahin
答
我建议更改backgroundImage,因为它会自动缩放,并且前面的按钮文本不会被覆盖。
如果它是一个自定义按钮,它的初始化中:
self.addTarget(self, action: #selector(*yourfunctoswitchimages*), for: .touchUpInside)
...然后是yourfunctoswitchimages可以只检查当前的背景图像是什么,并相应地打开它。
如果它不是自定义按钮,请在viewDidLoad中添加一个目标。这里有很多示例代码。
在您的viewDidLoad()
yourButt.addTarget(self, action: #selector(switcheroo), for: .touchUpInside)
另一个FUNC在您的视图控制器:
func switcheroo()
{
if yourButt.currentBackgroundImage == image1
{
yourButt.setBackgroundImage(image2), for: .normal)
}
else { // ...set image to image1 }
}
yourButt是当然的视图控制器的特性,这样,它是在viewDidLoad中访问( )以及其中的其他funcs。
你到目前为止尝试过什么? – mat
我试过.highlighted方法,因为我找不到永久代码,下面是我的代码: func ChangeButton(){ Button.setImage(A,for:.normal) Button.setImage(B,for :.highlighted) – Shahin
请参阅:https://stackoverflow.com/questions/44938919/how-do-i-change-an-image-if-i-click-on-a-button-in-swift/44939698# 44939698 –