私はあなたの場所のページにいるときGowalla iPhoneアプリのような効果を再現する私のUIViewControllerのUIScrollViewのontopを持っています。私のスクロールビューの下では、スクロールビューのフレームがそれをカバーしていても(ボタンの上にある、スクロールビューの透明な場所であっても)、そのアクションを実行できるようにするボタンがあります。どうすればこのようなことができますか?出来ますか? (それは、Gowalla [なんとか]それをしなければならなかった)タッチを検出するためにUIScrollViewの下でUIViewを取得する方法?
7
A
答えて
0
私はこの "Gowalla"アプリが何をするか分からない。うまくいけば、「スクロールビューの背後にあるボタン、「スクロールビュー」をタッチすることができるボタンの正確な説明です。
スクロールビューの背後にあるボタンのサイズを、スクロールビューのcontentSize
領域全体に塗りつぶすようにサイズ設定することができます。最も簡単な解決策は、スクロールビュー(他のすべてのビュー)それだけでやってください。
それ以外の場合は、上記のようにスクロールビューに配置する透明な背景のカスタムビューを作成することをお勧めします。簡単な解決策は、カスタムビュー(おそらくUIControl)をボタンに触れるだけで行えるようにすることです。何らかの理由でそれが不可能な場合は、カスタムビューのhitTest:withEvent:
をオーバーライドして基になるボタンを返すことをお勧めします。私はhitTest:withEvent:
をスクロール・ビュー自体に上書きすることに注意しています。スクロール・ビュー自体がスクロールを妨げる可能性があります。
0
スクロールビューの上部にボタンを追加してみてください。唯一の問題は、ボタンを押すとscrollViewとやりとりできなくなりますが、それでも表示されることです。
2
私の場合、次のメソッドをオーバーライドすることで、タッチイベントを別のビューに転送します。
- - touchesBegan:withEvent:
- - touchesMoved:withEvent:
- - touchesEnded:withEvent:
- - touchesCancelled:withEvent:
のようにこの方法では、
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// pass touch event by default implement.
[super touchesBegan:touches withEvent:event];
// redirect the touch events.
[anotherView touchesBegain:touches withEvent:event];
}
hitTest:withEvent:は、ビュー階層ツリー上のどのビューすべき応答タッチイベントを決定するために使用されます。ビューがタッチイベントに反応しないようにするには、hitTestでnilを返します。結果として、上記のタッチイベントメソッドは呼び出されません。
関連する問題
- 1. UIViewの配列を持つUIScrollViewレイヤーのUIViewのタッチを検出
- 2. UIButtonでタッチしたときのUIViewのタッチを検出する方法は?
- 3. 別のUIViewの下でUIScrollViewにタッチ情報を渡す
- 4. UIScrollviewの下のUIButtonのタッチを検出する
- 5. UIVIEWのエッジでタッチを検出する
- 6. UIViewのタッチを検出する場合
- 7. ユーザーのタッチを検出するカスタムUIView
- 8. タッチを検出して処理して下のビューに送信するオーバーレイUIView
- 9. iPhone - UIScrollViewの...タッチの座標を検出
- 10. どのuiviewがタッチされたかを検出する
- 11. MPMoviePlayerViewControllerのタッチを検出する方法
- 12. UIScrollViewのUIScrollView、UIScrollViewタップイベントを取得する方法
- 13. UIViewの配列からのタッチを検出する
- 14. タッチのスクロールを上下に検出
- 15. UIScrollViewの下に影を描く(UIViewをスクロールする)
- 16. UIScrollViewのタッチ位置を検出しますか?
- 17. UIWebViewのタッチ検出方法
- 18. iOS - UIViewでタッチを検出していますか?
- 19. プログラムでUIScrollViewにUIViewを表示する方法は?
- 20. UIViewのオーバーラップ - タッチを受け取る方法は?
- 21. UIImageでタッチ検出を無効にする方法は?
- 22. ドロウアブルがタッチされたときを検出する方法
- 23. SKSpriteNodeがタッチされたことを検出する方法
- 24. アンドロイドデバイスのunity3dで3Dオブジェクトのタッチを検出する方法C#
- 25. アニメーション中にUIImageViewのタッチを検出する方法
- 26. UINavigationControllerツールバーの背景にタッチを検出する方法
- 27. CAShapeLayerタッチを検出する
- 28. UIViewをタッチしてWebViewにコンテンツをロードする方法
- 29. UIScrollViewを有効にしたままで連続したタッチ位置を検出する
- 30. UIScrollViewの背後にあるUIViewと対話する方法
これは良い答えです。それは有り難いです。 –