How to change UIButton image after clicking in Swift?
14,762
Solution 1
Try this code
let image = UIImage(named: "duellogo.png") as UIImage!
self.playRoundButton.setImage(image, forState: .Normal)
Solution 2
Swift 3:
self.addButton.setImage(UIImage(named: "pending"), for: .normal)
Author by
Admin
Updated on June 04, 2022Comments
-
Admin almost 2 years
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. But I am unsure how to change UIButton Image; I only know how to change 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) } } }