使用 Swift 2.0 更新 UIButton 图像

Posted

技术标签:

【中文标题】使用 Swift 2.0 更新 UIButton 图像【英文标题】:Update UIButton image using Swift 2.0 【发布时间】:2015-06-11 17:33:13 【问题描述】:

当我尝试使用 this solution 更新 UIButton 图像(Xcode 7 beta 1)时,它给了我这个错误

无法使用“(UIImage?, forState: nil)”类型的参数列表调用“setImage”

代码如下:

if counter % 2 == 0
    playButton.setImage(UIImage(named: "pause"), forState: nil)

else if counter % 2 == 1 
    playButton.setImage(UIImage(named: "play"), forState: nil)

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

forState 参数不能是 nil - 它必须是 UIControlState

在你的情况下,你应该使用UIControlState.Normal

if counter % 2 == 0
    playButton.setImage(UIImage(named: "pause"), forState: UIControlState.Normal)

else if counter % 2 == 1 
    playButton.setImage(UIImage(named: "play"), forState: UIControlState.Normal)

【讨论】:

【参考方案2】:

在这里我们可以将 UIControlState.Normal 替换为 .Normal(两者都可以正常工作 最好使用 .Normal,因为这将是快速的速记功能)

if counter % 2 == 0
    playButton.setImage(UIImage(named: "pause"), forState: .Normal)

else if counter % 2 == 1 
    playButton.setImage(UIImage(named: "play"), forState: .Normal)

【讨论】:

以上是关于使用 Swift 2.0 更新 UIButton 图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 2.0 中翻译我的硬编码字符串? [复制]

Swift - CABasicAnimation 完成时更新 UIButton

Swift:如何从另一个类 X 更新 UILabel:UIButton

使用swift在scrollview内的stackview中更改uibutton中的标题

在同个工程中使用 Swift 和 Objective-C(Swift 2.0更新)-b

在 Swift 2.0 中使用 NSFetchedResultsController