UIKit - tintColorについて調べた

本を読んでいたら、tintColorについて発見があったのでメモ。
単にUIの色を変えるという認識でした。

親のビューのtintColorを変更すると、子のビューのtintColorが変更される

let parentView = UIView()
let stepper = UIStepper()
stepper.tintColor = UIColor.yellowColor() // 黄色を設定
parentView.addSubview(stepper)

parentView.tintColor = UIColor.blueColor() // 子供すべてのtintColorが青色に変更される

さらに、tintColorにnilを代入すると、親のtintColorがあてがわれる。

let parentView = UIView()
parentView.tintColor = UIColor.redColor()

let stepper = UIStepper()
stepper.tintColor = UIColor.greenColor()

stepper.tintColor = nil //親の赤色がtintColorに設定される

tintColorを変更すると、変更したビューではtintColorDidChangeがコールされる

さらにtintColorを変更するとコールされるメソッドもあった。

let parentView = MyView()
parentView.tintColor = UIColor.redColor()

class MyView: UIView {
    override func tintColorDidChange() {
        print(tintColorを赤色に変更した)
    }
}

まだまだ知らないことがたくさんありますね〜。

絶賛ブランクを埋めるために、以下の本を読んでUIKitについて学び直してます。
小手先のテクニックではなくて、UIKitについてしっかり書かれているので学びがとても多いです。