with under and ios xcode swift uibutton

ios - under - Cómo cambiar la imagen UIButton en Swift



swift button with image and text (10)

A partir de swift 3.0, se ha eliminado el estado normal. Puede usar el siguiente para aplicar el estado normal.

myButton.setTitle("myTitle", for: [])

Estoy tratando de cambiar la imagen de un UIButton usando Swift ... ¿Qué debo hacer?

Este es el código OBJ-C. Pero no sé con Swift:

[playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];


Desde su código Obc-C, creo que desea establecer una imagen para el botón, así que intente de esta manera:

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

En breve:

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

Para Swift 3:

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


En Swift 4.2 y Xcode 10.1

Añadir imagen para el UIButton seleccionado

button.addTarget(self, action: #selector(self.onclickDateCheckMark), for: .touchUpInside)//Target button.setImage(UIImage.init(named: "uncheck"), for: UIControl.State.normal)//When selected button.setImage(UIImage.init(named: "check"), for: UIControl.State.highlighted)//When highlighted button.setImage(UIImage.init(named: "check"), for: UIControl.State.selected)//When selected

Pero si desea cambiar la imagen del botón seleccionado , debe cambiar su estado seleccionado. Entonces solo la imagen seleccionada aparecerá en su botón.

@objc func onclickDateCheckMark(sender:UIButton) { if sender.isSelected == true { sender.isSelected = false print("not Selected") }else { sender.isSelected = true print("Selected") } }


Para cualquiera que use Assets.xcassets y Swift 3, sería así (sin necesidad de .png)

let buttonDone = UIButton(type: .Custom) if let image = UIImage(named: "Done") { self.buttonDone.setImage(image, for: .normal) }


Prefiero el método de inicialización de mis variables en la parte superior primero:

let playButton:UIButton! var image:UIImage!

y luego configurándolos en viewDidLoad

override func viewDidLoad { ... playButton = UIButton(type: .Custom) imagePlay = UIImage(named:"play.png") playButton.setImage(imagePlay, forState: .Normal) }


Sí, incluso podemos cambiar la imagen de UIButton, usando flag.

class ViewController: UIViewController { @IBOutlet var btnImage: UIButton! var flag = false override func viewDidLoad() { super.viewDidLoad() //setting default image for button setButtonImage() } @IBAction func btnClick(_ sender: Any) { flag = !flag setButtonImage() } func setButtonImage(){ let imgName = flag ? "share" : "image" let image1 = UIImage(named: "/(imgName).png")! self.btnImage.setImage(image1, for: .normal) } }

Aquí, después de cada clic, la imagen de su botón cambiará alternativamente.


en Swift 4, (Xcode 9) ejemplo para activar o desactivar la imagen del botón (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) } }


en realidad puede hacer esto resaltando el botón y dentro del insepctor en la barra de herramientas de la derecha puede actualizar la imagen. obviamente puede hacerlo en código también como se indicó anteriormente, pero esta es otra opción para usted


suponga que este es su UIButton Name conectado como

@IBOutlet var btn_refresh: UIButton!

Puedes colocar tu imagen directamente en tres modos

// for normal state btn_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)

en la acción de su botón

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


en swift 3.0 :

@IBOutlet weak var selectionButton: UIButton! selectionButton.setImage(UIImage.addBlueIcon, for: .selected)