Swiftで遊ぼう! - 682 - Interface Builder, FaceView controller, Gestures, Multiple MVCs 2
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
2017年3月16日:Developing iOS 10 Apps with Swift - Free Course by Stanford on iTunes Uの公開に合わせてiOS 10向けに書き換えました。
クラスの冒頭に外部で変更するためのパブリックな変数を集めました。
Developing iOS 9 Apps with Swift - Free Course by Stanford on iTunes U
次はこの値をMVCでコントロールしていく準備をします。今のままでは変数の値を変更しても即座にViewの表示は変わりません。値の変化を感知する必要があるので便利な機能を使います。「プロパティ・オブザーバー」です。これも基本事項です。
以前勉強している時、どんな利用法があるのか検討もつかなかったんですが、このようにViewの表示にうってつけの機能ですね。
@IBInspectable var scale: CGFloat = 0.9 { didSet { setNeedsDisplay() } } @IBInspectable var mouthCurvature: Double = 1.0 { didSet { setNeedsDisplay() } } @IBInspectable var eyesOpen: Bool = false { didSet { setNeedsDisplay() } } // iOS 10講座ではいりません // @IBInspectable // var eyeBrowTilt: Double = -0.5 { didSet { setNeedsDisplay() } } @IBInspectable var color = UIColor.blueColor() { didSet { setNeedsDisplay() } } @IBInspectable var lineWidth: CGFloat = 5.0 { didSet { setNeedsDisplay() } }
「setNeedsDisplay()」はマストリメンバーなメソッドです。ここで自分自身の持っている「self.draw()」を決してコールしてはいけないとポール先生は強調しています。draw()メソッドは必ずシステムに任せていないと致命的なエラーに陥ります。
今日はここまで。