をUIView
含む があり、ユーザーが をタップするたびUIScrollView
に「タッチダウン」イベントをキャプチャできるようにしたいと考えています。UIView
UIScrollView
私はすべての touchesBegan/Ended/Cancelled ハンドラーを含めようとしましたが、 main に含まれるUIViewController
内をタップしても、それらのどれも起動されません。UIScrollView
UIView
これを達成するための最良の方法は何ですか?
をUIView
含む があり、ユーザーが をタップするたびUIScrollView
に「タッチダウン」イベントをキャプチャできるようにしたいと考えています。UIView
UIScrollView
私はすべての touchesBegan/Ended/Cancelled ハンドラーを含めようとしましたが、 main に含まれるUIViewController
内をタップしても、それらのどれも起動されません。UIScrollView
UIView
これを達成するための最良の方法は何ですか?
UIView で、touchesBegan を実装します。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// assign a UITouch object to the current touch
UITouch *touch = [[event allTouches] anyObject];
// if the view in which the touch is found is myScrollView
// (assuming myScrollView is the UIScrollView and is a subview of the UIView)
if ([touch view] == myScrollView) {
// do stuff here
}
}
補足: UIView で userInteractionEnabled が YES に設定されていることを確認してください。
hitTest:withEvent:
UIView サブクラスに実装することもできます。このメソッドは、どのサブビューがタッチ イベントを受け取るかを決定するために呼び出されます。したがって、ここでは、ビューを通過しないすべてのイベントを追跡するか、サブビューから一部のイベントを非表示にすることができます。この場合、スクロールビューのユーザー操作を無効にする必要はないかもしれません。
このメソッドの詳細については、UIView
クラス リファレンスを参照してください。
スクロールビューなどのユーザー操作を無効にする必要があります...
scrollView.userInteractionEnabled = NO;
無効にすると、UIScrollView のスーパービューは touchesBegan イベントを取得します。