読者です 読者をやめる 読者になる 読者になる

Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 687 - Interface Builder, FaceView controller, Gestures, Multiple MVCs 7

やっと講義5の最後のストーリーボードでジェスチャーの実装法です。

Developing iOS 9 Apps with Swift - Free Course by Stanford on iTunes U

私はstoryboardを使ったジェスチャーの実装が好きです。コードをできるだけ書きたくないし、コードが見やすくなるなるからです。faceViewのプロパティ・オブザーバーを使って実装するのがスマートに見えないからです。

f:id:yataiblue:20160524184109j:plainTapジェスチャーの実装

Main.storyboardのオブジェクト・ライブラリから「Tap Gesture Recognizer」を選択して、FaceViewに「ドラッグ&ドロップ」します。

f:id:yataiblue:20160524184530j:plain

するとScene Dockの上部に「Tap Gesture Recognizer」が出現するので、FaceViewControllerに「Ctrl + ドラッグ」して、@IBActionメソッドを作ります。

f:id:yataiblue:20160524184459j:plain

@IBActionを作る時に重要なのは、必ず「AnyObject」を「UITapGestureRecognizer」に変更することです。

@IBAction func toggleEyes(recognizer: UITapGestureRecognizer) {
    if recognizer.state == .Ended {
        switch expression.eyes {
        case .Open: expression.eyes = .Closed
        case .Closed: expression.eyes = .Open
        case .Squinting: break
        }
    }
}

そして、できたメソッドのパラメーター名が「sender」になっているので、これを「recognizer」に変更します。リーダブルコーディングというスタンスから変更しなければなりません。

コードの内容に解説は要りませんよね。

これで講義5が終了です。