我有一个按钮,它可以在点击时更改图像,但由于某种原因它没有改变为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)
}
答案 0 :(得分:9)
您必须添加图片的扩展名 而且无需创建单独的图像变量。
testBtn.setImage(UIImage(named:"a1.png"),forState:UIControlState.Normal)
testBtn.setImage(UIImage(named:"a2.png"),forState:UIControlState.Highlighted)
答案 1 :(得分:1)
希望问题可能在于图片名称,您可能还需要提供其扩展名: 而不是
let versusButtonClickedImage = UIImage(named: "versus_button_cicked") as UIImage
使用
let versusButtonClickedImage = UIImage(named: "versus_button_cicked.png") as UIImage
答案 2 :(得分:1)
为了记录(至少截至2014年12月),您需要提供图片名称INCLUDING UIImage(named:)
的扩展名才能使其正常工作。
据我所知,在Obj-C你没有必要。
示例:
self.CButton.setImage(UIImage(named: "ArrowUp30.png"), forState: UIControlState.Normal)
但是这个不起作用:
self.CButton.setImage(UIImage(named: "ArrowUp30"), forState: UIControlState.Normal)
答案 3 :(得分:0)
' 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)
}