2011-08-24 6 views
1

私はUIViewとUIWebViewを持っています。iphone - タッチ(タップ)イベントの順番

UIWebViewは、UIViewの子ビューです。

UIWebViewには、YouTubeビデオが含まれており、ビデオをUIWebViewにフィットさせるように設定されています。ユーザーシングルタップ全景場合

私はシングルタップの親のUIViewに関連したUITapGestureを持っている、と言う、それはのUIWebViewは、ユーチューブの動画をロードするとき、そこにある、だから、A.

を起動しますユーザーがクリックして再生するのを待っているビデオの上部にあるボタン。しかし今、私がボタンをクリックすると、YouTubeが再生されますが、Aも呼び出されます。これは私が望まないものです。

どうすれば解決できますか?

私はタッチ/タップイベントがオーダーにあるべきだと思っていました。ボタンがクリックされた場合、それはイベントを吸収し、UIViewをそれ以上与えません。

また、別のUIViewをUIWebViewの下に追加し、そのジェスチャを基になるビューにアタッチしようとしました。しかし、それはまだ動作しません。

YouTubeビデオ上のボタンを独立させるにはどうすればよいですか?

おかげ

答えて

1

ビューの.mファイルにこのコードを追加してみます(のUIViewを使用している場合は、サブクラスそれを):

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    CGPoint p = [self convertPoint:point toView:webView]; 
    if ([webView pointInside:p withEvent:event]) { 
     return [webView hitTest:p withEvent:event]; 
    } 
    return [super hitTest:point withEvent:event]; 
} 

私は、このコードを試してみてください、それはdoesnのなら、私に教えてくれなかったので、仕事はありません。状況に対処する方法はまだまだたくさんあります。 :)

+0

あなたは私にサブクラスのビュー以外の別の方法を教えてもらえますか? –

+0

ビューをサブクラス化するのはあまり難しくありません... –

+0

@JacksonTale UITapGestureを使用しているので、ユーザーが画面上でタップした場所を取得し、そのポイントがUIWebViewにあるかどうかを確認します。あなたのタップイベント機能を返すだけで、さらなるアクションを止めることができます。 – xuzhe

関連する問題