[英]Swift Image clicked Button not changing
我有一个按钮,它可以在单击时更改图像但由于某种原因它没有更改为UIControlState.Highlighted状态的图像集
override func viewDidLoad() {
super.viewDidLoad()
let versusButtonClickedImage = UIImage(named: "versus_button_cicked") as UIImage
let versusButtonImage = UIImage(named: "versus_button") as UIImage
versusButton.setImage( versusButtonImage, forState: UIControlState.Normal)
versusButton.setImage(versusButtonClickedImage, forState: UIControlState.Highlighted)
}
你必须添加图像的扩展名。
而且无需创建单独的图像变量。
testBtn.setImage(UIImage(named:"a1.png"),forState:UIControlState.Normal)
testBtn.setImage(UIImage(named:"a2.png"),forState:UIControlState.Highlighted)
希望问题可能在于图像名称,您可能还需要提供它们的扩展名:而不是
let versusButtonClickedImage = UIImage(named: "versus_button_cicked") as UIImage
采用
let versusButtonClickedImage = UIImage(named: "versus_button_cicked.png") as UIImage
为了记录(至少截至2014年12月),您需要为UIImage(named:)
提供图像名称INCLUDING扩展,以使其正常工作。
据我所知,在Obj-C你没有必要。
例:
self.CButton.setImage(UIImage(named: "ArrowUp30.png"), forState: UIControlState.Normal)
但是这个不起作用:
self.CButton.setImage(UIImage(named: "ArrowUp30"), forState: UIControlState.Normal)
“ highlighted
”状态意味着手指按下按钮并持续按下(不离开屏幕)。 因此,如果用户“点击”(按下然后离开)按钮。 它会恢复到“正常”状态。 您应该在按钮的操作方法中手动设置不同的图像。
func buttonTapped() {
let normalImage = self.button.imageForState(.Normal)
let highlightedImage = self.button.imageForState(.Highlighted)
button.setBackgroundImage(highlightedImage, forState: .Normal)
button.setBackgroundImage(normalImage, forState: .Highlighted)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.