How to change UIButton image after pressing Swift button?

I am new to coding development, so this should be a pretty empty question. But I'm trying to change the image of my UIButton to the image stored in image.casset "duellogo" if the if statement is executed. But I'm not sure how to change the UIButton Image; I only know how to change the image of 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)
        }
    }
}
+4
source share
5 answers

Try this code

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

Swift 3:

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

, , , ( ):

UIImage(named: @"duellogo")
0

If you want to change the button image, you first need to go to your Main.storyboard. Then on the right side you should select Attribute Inspector. Under the "Button" heading you can find the field image, there you can select the images stored in your assets.

0
source

You can try this code for your image:

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

Hope this helps you.

-1
source

All Articles