简体   繁体   English

单击Swift后如何更改UIButton图像?

[英]How to change UIButton image after clicking in Swift?

I'm new to coding development so this should be a pretty noob question. 我是编码开发的新手,所以这应该是一个非常棒的问题。 But I'm trying to change the image of my UIButton to an image stored in image.casset "duellogo" if my if statement executes. 但是我试图将我的UIButton的图像更改为存储在image.casset“duellogo”中的图像,如果我的if语句执行的话。 But I am unsure how to change UIButton Image; 但我不确定如何更改UIButton图像; I only know how to change UIImageView Image. 我只知道如何更改UIImageView Image。

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)
        }
    }
}

Try this code 试试这个代码

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

斯威夫特3:

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

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

UIImage(named: @"duellogo")

If you want to change the Image of a button you first have to go to your Main.storyboard. 如果要更改按钮的图像,首先必须转到Main.storyboard。 Then on the right side, you have to select the Attribute Inspector. 然后在右侧,您必须选择属性检查器。 Under the headline "Button" you can find the field image, there you can select images stored in your Assets. 在标题“按钮”下,您可以找到字段图像,在那里您可以选择存储在资产中的图像。

You can try this code for your image: 您可以为您的图片试用此代码:

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

Hope this can help you. 希望这可以帮到你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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