Blog スタッフブログ

iOS Swift システム開発

[iOS]tintColorを利用してUIImageの色を変更する

Swift

こんにちは、株式会社MIXシステム開発担当のBloomです。

早速本題のtintColorを利用してUIImageの色を変更する方法について、

お仕事の中で得た知見を共有させていただきたいと思います。

tintColorとは

tintColorとはUIViewクラスのプロパティであり、UI部品のデフォルト色として機能します。

通常は例えばUISliderのバーの色やUISwitchがオフの場合の輪郭色などに利用しますが、今回はtintColorに設定した色で、UIImageViewやUIButtonへ設定した画像を塗りつぶしてみましょう。


class ViewController: UIViewController {
    @IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        imageView.image = UIImage(named: "image.png")?.withRenderingMode(.alwaysTemplate)
        imageView.tintColor = .red
    }
}

実行結果

UIImageのレンダリングモードを.alwaysTemplateに指定することで設定先UIViewサブクラスのtintColorが参照されるようになります。注意点として、tintColorはUIColorの中でもパターン色には対応していないので気をつけましょう。

これだけで簡単にUIImageの色を変更することができました。良かったですね。