Xcode7 – Swift2 UIImageViewのタッチイベントを検知する

このエントリーをはてなブックマークに追加
Pocket
LINEで送る

Xcode 7.0.1
Swift 2.0

ボタンだと、下記のようにできます。

UIImageViewだと、addTargetは使えません。

参考:SwiftにてUIImageViewをTap検知後、詳細画面に遷移したい

上記を参考に、下記のように作成してみましたが、エラーはでませんが、検知しません。

touchesBeganを使って座標で計算しようかなと思いまして、下記をとりあえずつくりましたが、これも反応しません。

参考:UILABELやUIIMAGEVIEWが応答しない場合の対処法

userInteractionEnabledはUIViewクラスのプロパティで、デフォルトではNOらしい。これをtrueにしないと反応しないらしい。

上記を追加したが、反応しない。

どうも、UIScrollViewを使っていることが原因っぽい。UIScrollViewを外すと反応する。

参考:UILabel・UIImageViewでタッチイベントを拾う方法の例外

しかし 「UIScrollViewの上に乗っているUILabeやUIImageView」 の場合は、
タップしてもtouchesBeganメソッドやtouchesEndedメソッドが反応しない。
(UIScrollViewのtouchesBegan/touchesEndedメソッドの実装によるものと推測)

UIScrollView上にある、UIImageViewとかUILabelのタッチイベントを検知するには、UITapGestureRecognizerを使い、対象のviewのuserInteractionEnabledをtureにしたら反応した。

このエントリーをはてなブックマークに追加
Pocket
LINEで送る

Be the first to commenton "Xcode7 – Swift2 UIImageViewのタッチイベントを検知する"

Leave a comment

Your email address will not be published.


*