swift uibutton uiimage uicontrolstate

¿Cómo configurar el alfa de un UIImage en SWIFT mediante programación?



uibutton uicontrolstate (3)

Afortunadamente, pude ayudarme y me gustaría compartir con ustedes mi solución:

Swift 3

// UIImage+Alpha.swift extension UIImage { func alpha(_ value:CGFloat) -> UIImage { UIGraphicsBeginImageContextWithOptions(size, false, scale) draw(at: CGPoint.zero, blendMode: .normal, alpha: value) let newImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return newImage! } }

La nueva extensión Swift anterior la agregué a mi proyecto y luego cambié el ejemplo de UIButton de la siguiente manera, para tener una imagen de fondo alfa transparente con una transparencia del 50%.

let img = UIImage(named: "imageWithoutAlpha")!.alpha(0.5) let myButton = UIButton() myButton.setBackgroundImage(img, for: .normal)

Encontré muchas soluciones aquí, pero no para SWIFT, y sé que puedes hacer esto con un UIImageView, pero en mi caso necesito una imagen de fondo transparente alfa programada para un UIButton . ¡Lo mejor sería una extensión de UIImage para SWIFT!

let img = UIImage(named: "imageWithoutAlpha") var imgInsets = UIEdgeInsetsMake(0, 24, 0, 24) image = image!.resizableImageWithCapInsets(imgInsets) let myButton = UIButton(frame: CGRect(x: 50, y: 50, width: img!.size.width, height: img!.size.height)) myButton.setBackgroundImage(img, forState: UIControlState.Normal) myButton.contentEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 20) myButton.setTitle("Startbutton", forState: UIControlState.Normal) myButton.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal) myButton.sizeToFit() view.addSubview(myButton)

Resultado actual:

Resultado deseado:


La forma más fácil es colocar tu UIImage dentro de un UIImageView y configurar el alfa allí.

let image = UIImage(named: "imageWithoutAlpha") let imageView = UIImageView(image: image) imageView.alpha = 0.5 myButton.setBackgroundImage(image, forState: UIControlState.Normal)


Pude establecer el alfa usando el siguiente código:

self.imageView.image = UIImageView(image: "image.png") imageView.alpha = 0.5