Swift

Swift:addGestureRecognizerの使い方


『UIButtonをタップした時に、イベントを起こすのはできるけど、
viewなどの他のUIのタップも検知して、イベントを起こせたらいいなぁ・・・』

と思ったことはありませんか?

実はそれできるんです!

今回は、UIViewControllerに配置したUILabelをタップすると、
viewの色が変わるアプリを作ります。

まずはStoryBoardを開いてください。
UIViewControllerの真ん中にUILabelを置いてください。
f:id:jumprails3303:20161129223311p:plain

そして、今配置したUILabelをコードと紐付けましょう。
名前は『label』にします。
f:id:jumprails3303:20161129223633p:plain

そして、ViewControllerをこのように編集してください。

コードの解説をします。

UITapGestureRecognizer

ここの部分のコードは
「タップされると下の方に記述されている『changeColor(_ sender: UITapGestureRecognizer)』というメソッドを処理するよ!」
というものをインスタンス化しています。

isUserInteractionEnabled

UILabelはデフォルトの状態では、タップを検知することができません。
しかし、今回はタップするとイベントが起こるということがしたかったので、
isUserInteractionEnabledが必要だったのです。

addGestureRecognizer

ここで実際にlabelにイベントを追加しています。
addGestureRecognizerの引数にUITapGestureRecognizerのインスタンスを入れます。

おまけ

今回色が変わるイベントをこのように書きました。

arc4random

arc4randomは乱数を生じさせています。
『%』によってあまりを出して云々・・・

backgroundColorはRGBAで指定してランダム感を楽しみます。


コメント

コメントを残す

*