UIImageの透過部分に色をつけるもっとかっこいい書き方がありそうだけれど、とりあえずこれでやりたいことは実現できるので。

[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]

ただ単にイメージを描き直しているだけなんですが、その際に背景色を設定しています。パフォーマンス的にいいね!

IOS Simulator Screen Shot 2015 09 30 3 22 54

これはもともと透過のアイコンんイメージですが、透過部分を白に変えています。

カテゴリー: Code

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください