按钮图像不会改变

Posted

技术标签:

【中文标题】按钮图像不会改变【英文标题】:Button image will not change 【发布时间】:2014-09-26 15:24:22 【问题描述】:

我正在练习/学习 swift 并且正在制作井字游戏。我一直在尝试更改按钮图像,但是单击按钮时没有任何变化。

在单击事件处理程序中将此操作应用于发件人是否正确?如果是这样,为什么这不起作用?

谢谢

class ViewController: UIViewController 

    var playerOneTurn = true;
    let cross = UIImage(named: "Cross") as UIImage;
    let naught = UIImage(named: "naught") as UIImage;

    @IBAction func topLeftBtn(sender: UIButton) 

        var image = sender.imageForState(UIControlState.Normal);

        if(image == nil)
            if(playerOneTurn == true)
                sender.setImage(naught,forState: UIControlState.Highlighted);
                playerOneTurn = false;
            else
               sender.setImage(cross,forState: UIControlState.Highlighted);
                playerOneTurn = true;
            
        
        checkForWinner();

    

【问题讨论】:

您解决了吗?请考虑接受/支持对您有帮助的答案。不胜感激。 【参考方案1】:

看起来您在按下按钮时只设置了Highlighted 按钮状态图像。那是你想做的吗?请尝试以下方法:

    if(image == nil)
        if(playerOneTurn == true)
            sender.setImage(naught,forState: UIControlState.Normal);
            playerOneTurn = false;
        else
           sender.setImage(cross,forState: UIControlState.Normal);
            playerOneTurn = true;
        
    

【讨论】:

以上是关于按钮图像不会改变的主要内容,如果未能解决你的问题,请参考以下文章

如何放大按钮图像?

调用 setImage: 后 UIButton 不会更新它的图像

快速播放完成时更改按钮图像

在 Iphone 中选择按钮时更改按钮的图像

按下鼠标时不会更新 QML 图像源

如何根据文本长度或背景图像调整按钮宽度