titlelabel settitle color buttons ios swift uibutton

ios - settitle - UIButton color de fondo para el problema de estado resaltado/seleccionado



swift button action (2)

Tengo un UIButton y he creado una extensión para agregar color de fondo para un estado diferente.

Estoy usando el siguiente código:

extension UIButton { func setBackgroundColor(color: UIColor, forState: UIControlState) { UIGraphicsBeginImageContext(CGSize(width: 1, height: 1)) CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), color.CGColor) CGContextFillRect(UIGraphicsGetCurrentContext(), CGRect(x: 0, y: 0, width: 1, height: 1)) let colorImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() self.setBackgroundImage(colorImage, forState: forState) } } // Set Button Title and background color for different states self.donateButton.setBackgroundColor(UIColor.redColor(), forState: .Normal) self.donateButton.setTitleColor(UIColor.whiteColor(), forState: .Normal) self.donateButton.setBackgroundColor(UIColor.greenColor(), forState: .Highlighted) self.donateButton.setTitleColor(UIColor.whiteColor(), forState: .Highlighted) self.donateButton.setBackgroundColor(UIColor.greenColor(), forState: .Selected) self.donateButton.setTitleColor(UIColor.whiteColor(), forState: .Selected)

Mi problema es que no está recogiendo el color de fondo UIButton adecuado y el color del título para el estado resaltado / seleccionado.


Cuando se selecciona su UIButton . Si se enfoca en el botón, no resaltará el botón como estado. .Highlighted . Si no está seleccionado, lo resaltará como tu voluntad. Por lo que respecta a que tenga una imagen de fondo en su botón, usará el efecto predeterminado para resaltar una imagen. Si desea cambiar el estado a .Selected , debe establecer la variable selected de UIButton en verdadero.


Encontré el problema, UIButton se estableció en Sistema . Simplemente lo cambié a Personalizado , comenzó a funcionar como se esperaba.