How to change UIButton image in Swift How to change UIButton image in Swift swift swift

How to change UIButton image in Swift


From your Obc-C code I think you want to set an Image for button so try this way:

let playButton  = UIButton(type: .Custom)if let image = UIImage(named: "play.png") {    playButton.setImage(image, forState: .Normal)}

In Short:

playButton.setImage(UIImage(named: "play.png"), forState: UIControlState.Normal)

For Swift 3:

let playButton  = UIButton(type: .custom)playButton.setImage(UIImage(named: "play.png"), for: .normal)


in Swift 4, (Xcode 9)example to turn picture of button to On or Off (btnRec):

var bRec:Bool = true@IBOutlet weak var btnRec: UIButton!@IBAction func btnRec(_ sender: Any) {    bRec = !bRec    if bRec {        btnRec.setImage(UIImage(named: "MicOn.png"), for: .normal)    } else {        btnRec.setImage(UIImage(named: "MicOff.png"), for: .normal)    }}


assume that this is your connected UIButton Name like

@IBOutlet var btn_refresh: UIButton!

your can directly place your image in three modes

 // for normal statebtn_refresh.setImage(UIImage(named: "xxx.png"), forState: UIControlState.Normal)     // for Highlighted state      btn_refresh.setImage(UIImage(named: "yyy.png"), forState: UIControlState.Highlighted)        // for Selected state         btn_refresh.setImage(UIImage(named: "zzzz.png"), forState: UIControlState.Selected)

on your button action

  //MARK: button_refresh action@IBAction func button_refresh_touchup_inside(sender: UIButton){    //if you set the image on same  UIButton    sender.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)    //if you set the image on another  UIButton       youranotherbuttonName.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)}