繁体   English   中英

Swift Image点击Button不变

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM