もっとかっこいい書き方がありそうだけれど、とりあえずこれでやりたいことは実現できるので。
[code lang=Swift] extension UIImage { func fill(color: UIColor) -> UIImage { let rect = CGRect(origin: CGPointZero, size: self.size) UIGraphicsBeginImageContextWithOptions(rect.size, false, UIScreen.mainScreen().scale) let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor) CGContextFillRect(context, rect) self.drawInRect(rect)
let coloredImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return coloredImage } } [/code]
ただ単にイメージを描き直しているだけなんですが、その際に背景色を設定しています。パフォーマンス的にいいね!
これはもともと透過のアイコンんイメージですが、透過部分を白に変えています。