【问题标题】:How to change UIButton image after clicking in Swift?在 Swift 中单击后如何更改 UIButton 图像?
【发布时间】:2015-05-14 06:42:16
【问题描述】:

我是编码开发的新手,所以这应该是一个非常菜鸟的问题。但是如果我的 if 语句执行,我正在尝试将我的 UIButton 的图像更改为存储在 image.casset "duellogo" 中的图像。但我不确定如何更改 UIButton Image;我只知道如何更改 UIImageView 图像。

import UIKit

class ViewController: UIViewController 
{

    @IBOutlet weak var firstCardImageView: UIImageView!
    @IBOutlet weak var secondCardImageView: UIImageView!
    @IBOutlet weak var playRoundButton: UIButton!
    @IBOutlet weak var backgroundImageView: UIImageView!

    @IBOutlet weak var Player1Score: UILabel!
    @IBOutlet weak var Player2Score: UILabel!

    //declaring index score, 0, to player 1 and player 2
    var player1Total=0
    var player2Total=0

    var cardNamesArray:[String] = ["ace", "card2", "card3", "card4", "card5", "card6", "card7", "card8", "card9", "card10", "jack", "queen", "king"]

    override func viewDidLoad() 
    {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() 
    {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func playRoundTapped(sender: UIButton) 
    {
        // create variable to make a random number from 1-13
        var firstRandomNumber:Int = Int(arc4random_uniform(13))
        var firstCardString:String = self.cardNamesArray[firstRandomNumber]
        self.firstCardImageView.image = UIImage(named: firstCardString)

        // create variable to make a random number from 1-13 for second card
        var secondRandomNumber = Int(arc4random_uniform(13))
        var secondCardString:String = self.cardNamesArray[secondRandomNumber]
        self.secondCardImageView.image = UIImage(named: secondCardString)


        // Determine the higher card
        if firstRandomNumber > secondRandomNumber{
            //TODO: first card is lager
            player1Total+=1
            self.Player1Score.text = String(player1Total)
        }else if(firstRandomNumber == secondRandomNumber){
            // ERROR: TRYING TO CHANGE BUTTON IMAGE
            self.playRoundButton.setImage("duellogo", forState: UIControlState.Normal)
            //    ^^ ERROR
        }else{
            //TODO: second card is larger
            player2Total+=1
            self.Player2Score.text = String(player2Total)
        }
    }
}

【问题讨论】:

    标签: ios swift uibutton uiimage


    【解决方案1】:

    基本上,使用与之前相同的代码从名称创建图像(而不仅仅是指定名称):

    UIImage(named: @"duellogo")
    

    【讨论】:

      【解决方案2】:

      试试这个代码

      let image = UIImage(named: "duellogo.png") as UIImage!
      self.playRoundButton.setImage(image, forState: .Normal)
      

      【讨论】:

        【解决方案3】:

        您可以为您的图片尝试此代码:

        self.playRoundButton.image = UIImage(named: "duellogo.png")
        

        希望对你有帮助。

        【讨论】:

          【解决方案4】:

          斯威夫特 3:

          self.addButton.setImage(UIImage(named: "pending"), for: .normal)
          

          【讨论】:

            【解决方案5】:

            如果要更改按钮的图像,首先必须转到 Main.storyboard。然后在右侧,您必须选择属性检查器。在标题“按钮”下,您可以找到字段图像,在那里您可以选择存储在您的资产中的图像。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-01-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多