Respuestas:
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)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
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)
}
}
Asume que este es tu UIButton Name
como conectado
@IBOutlet var btn_refresh: UIButton!
puedes colocar directamente tu imagen 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 tu 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)
}
Prefiero el método de inicializar 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.
Swift 5 y garantiza que la imagen se adapte al tamaño del botón pero se mantenga dentro de los límites de los botones.
yourButton.clipsToBounds = true
yourButton.contentMode = .scaleAspectFill
// Use setBackgroundImage or setImage
yourButton.setBackgroundImage(UIImage(named: "yourImage"), 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, también puede hacerlo en código como se indicó anteriormente, pero esta es otra opción para usted
En Swift 4.2 y Xcode 10.1
Agregar imagen para el botón UIB 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")
}
}
en swift 3.0 :
@IBOutlet weak var selectionButton: UIButton!
selectionButton.setImage(UIImage.addBlueIcon, for: .selected)