Swift Image点击Button不变

时间:2014-07-24 08:41:11

标签: ios swift

我有一个按钮,它可以在点击时更改图像,但由于某种原因它没有改变为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)


}

4 个答案:

答案 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)
}