お?いけるくさい?

iPhoneアプリエンジニアのたまごです。いっちょまえエンジニア目指してちいさな発見や学んだことを覚え書きしていきます!Objective-C/iOS/開発

タップ認識

1、「閉じる」ボタンを置いたUIViewがあります。

2、このViewを「表示」ボタンを置いたViewControllerがあります。

3、UIViewをViewControllerにaddして、setHidden:YESにしておきます。

4、「表示」ボタンを押すとViewをsetHidden:NOにします。

5、表示されたViewにある「閉じる」ボタンを押すと、setHidden:YESにして隠します。

  ボタン以外のところに触れてもsetHidden:YESにしたいです。

6、というわけでUIGestureRecognizerをUIviewに追加します。これでタップイベントが拾えます。

7、すると、タップイベントは拾えるようになったのですが、ボタンが押せなくなってしまいました...orz

 

こんなときの解決法は以下。

--------------------------------------------------------------------------------

UIGestureRecognizerをUIViewに組みこむと、ほかのタッチイベントが無効になります。

それを避けるには、UIGestureRecognizerのプロパティ「cancelsTouchesInView」をNOにします。

--------------------------------------------------------------------------------

 

今回はGestureRecognizerをxibで付加してみたので、

その場合、xib画面でGestureRecognizerを選択して、

GestureRecognizerの設定(画面右側のやつです)の

「Events: Canceled in View」のチェックを外すと

このプロパティ指定ができます。

 

 ※例えばこのViewの下にScrollViewとかはさんじゃうとダメぽ(ω・`))キョロ(( ´・ω)

 Scrollviewはタッチイベントを奪ってしまうので..

 このへんはまだまだ勉強が必要!