ios - 如何在 Swift 3 中设置 UIButton 的图像?

标签 ios swift uibutton uikit

最初,我的代码可以正常工作。

IBAction func clickedon(_ sender: UIButton) {

    if(gamestate[sender.tag] == 0 && gameisactive == true){

        gamestate[sender.tag] = activeplayer

    if (activeplayer == 1){
        print("working")
        sender.setImage(UIImage(named:"Cross.png"), for: UIControlState()) <-----------
        activeplayer = 2
    }
    else {
        print("working2")
        sender.setImage(UIImage(named:"Nought.png"), for: UIControlState()) <-----------
        activeplayer = 1

    } 
    }

这两段设置图像的代码是有效的。这些按钮的图像没有任何设置。单击它们时,我希望它们切换到那些图像。这些图像位于带有 View Controller 的文件夹中。我不确定他们为什么停止工作。我注释掉了所有其他代码,看看它是否是一个问题,但它似乎不是。在这两种情况下打印语句都会被打印出来。就是套图而已,好像没什么作用。没有错误,只是什么都不做。

我不太理解 UIControlState() 代码。我正在模仿一个具有相同代码并且可以运行的在线项目。真是奇怪。如果您有任何建议,请告诉我!

最佳答案

IBAction func clickedon(_ sender: UIButton) {

if(gamestate[sender.tag] == 0 && gameisactive == true){

    gamestate[sender.tag] = activeplayer

if (activeplayer == 1){
    print("working")
   sender.setImage(UIImage(named: "Cross.png")!, forState: UIControlState.Normal)
   sender.setImage(UIImage(named:"CrossSelected.png")!, forState: UIControlState.Selected)

    activeplayer = 2
}
else {
    print("working2")
    sender.setImage(UIImage(named: "Nought.png")!, forState: UIControlState.Normal)
    sender.setImage(UIImage(named:"NoughtSelected.png")!, forState: UIControlState.Selected)
    activeplayer = 1

} 
}

关于ios - 如何在 Swift 3 中设置 UIButton 的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40296772/

相关文章:

ios - WKWebView 是否支持 websocket?

ios - 如何将 URLSessionStreamTask 与 URLSession 一起用于分块编码传输

ios - 将 ARSCNView 场景背景内容设置为 iPhone X 相机

ios - contentOverlayView 上的按钮没有响应

ios - 如何滚动到 UIScrollview 中的 UIButton 位置

iphone - 在循环中创建的 UIButton 不可点击

ios - 添加 XSuperObject 时项目无法在 iOS 中启动

如果用户未登录,IOS 共享扩展程序会显示警报吗?

swift - SpriteKit 中的缩放怪异

ios - 无法使用类型为 '[[String : AnyObject]]' 的索引下标类型为 'String' 的值