Cómo configurar un color de background en UIimage en una progtwigción rápida

Dibujo una image con el método drawInRect() , mi rectángulo tiene un tamaño de 120 * 120 y mi image es de 100 * 100. Cómo puedo establecer un color de background para mi image en swift

También puede usar esta extensión:

 extension UIImage { func imageWithColor(tintColor: UIColor) -> UIImage { UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale) let context = UIGraphicsGetCurrentContext() as CGContextRef CGContextTranslateCTM(context, 0, self.size.height) CGContextScaleCTM(context, 1.0, -1.0); CGContextSetBlendMode(context, kCGBlendModeNormal) let rect = CGRectMake(0, 0, self.size.width, self.size.height) as CGRect CGContextClipToMask(context, rect, self.CGImage) tintColor.setFill() CGContextFillRect(context, rect) let newImage = UIGraphicsGetImageFromCurrentImageContext() as UIImage UIGraphicsEndImageContext() return newImage } } 

Y entonces

 image.imageWithColor("#1A6BAE".UIColor) 

Probablemente sea mejor usar la propiedad backgroundColor de su UIImageView. Puede hacer esto de la siguiente manera:

 self.imageView.backgroundColor = UIColor.networkingColor() 

Los siguientes colors pnetworkingefinidos existen:

 blackColor darkGrayColor lightGrayColor whiteColor grayColor networkingColor greenColor blueColor cyanColor yellowColor magentaColor orangeColor purpleColor brownColor clearColor 

Si en su lugar desea crear mediante progtwigción UIImage con un color determinado, puede hacer esto de la siguiente manera:

 var rect = CGRectMake(0, 0, size.width, size.height) UIGraphicsBeginImageContextWithOptions(size, false, 0) color.setFill() UIRectFill(rect) var image: UIImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() 

Donde la var 'image' es tu UIImage coloreado.

Actualización de la solución de Egghead para Swift 3

 extension UIImage { static func imageWithColor(tintColor: UIColor) -> UIImage { let rect = CGRect(x: 0, y: 0, width: 1, height: 1) UIGraphicsBeginImageContextWithOptions(rect.size, false, 0) tintColor.setFill() UIRectFill(rect) let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() return image } } 

Uso:

 UIImage.imageWithColor(tintColor: <Custom color>) 

Otra forma de get una image con un color de background con una extensión es: (Swift 3)

 extension UIImage { /** Returns an UIImage with a specified background color. - parameter color: The color of the background */ convenience init(withBackground color: UIColor) { let rect: CGRect = CGRect(x: 0, y: 0, width: 1, height: 1) UIGraphicsBeginImageContext(rect.size); let context:CGContext = UIGraphicsGetCurrentContext()!; context.setFillColor(color.cgColor); context.fill(rect) let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() self.init(ciImage: CIImage(image: image)!) } } 

Y entonces:

 // change UIColor.white with your color let image = UIImage(withBackground: UIColor.white)