我是使用 Swift 4 开发 iOS 应用程序的新手。我使用下面的代码通过在 iOS 模拟器中运行它来更改 button2
的图像:
@IBAction func button2(_ sender: Any) {
button2.setImage(UIImage(named: "wrong_answer"), for: .normal)
}
但是,button2
在我第一次单击它时没有更改其图像时突出显示。然后在第二次点击后,button2
中的图像已更改。
我的问题是为什么第一次点击后 button2
中的图像没有改变?
如何在第一次点击而不是两次点击后更改图像?这是Xcode的iOS模拟器的bug还是正常的?
最佳答案
您可能有一个与 UIButton
状态相关的问题导致了这个问题。
我不认为这是一个模拟器错误。
顺便说一句,您应该遵循的一个好习惯是将导出命名为不同于 @IBAction
。比方说:
@IBAction func buttonTapped(_ sender: Any) {
button.setImage(UIImage(named: "image"), for: .normal)
}
试试这个:
override func viewDidLoad() {
super.viewDidLoad()
button.setImage(UIImage(named: "image"), for: .selected)
}
@IBAction func buttonTapped(_ sender: Any) {
button.isSelected = !button.isSelected
}
然后当您点击按钮时图像将自动更新。如果您想在第一次点击后保留图像,您可以将其更改为 button.isSelected = true
。
关于ios - 为什么 UIButton 需要点击两次来改变它的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53352159/