静的セルを含むテーブルがあります。これらのセルの1つには、パンジェスチャ認識機能を備えたビューがあります。
テーブルビューを下にスクロールしているときに、パンジェスチャ認識機能を備えたビューでセルに到達すると、スクロールが機能しないようです。ビューの外側(横または上または下)をタッチすると、機能し、スクロールできます。ジェスチャレコグナイザーにifステートメントがあり、特定の領域がタッチされているかどうかをテストし、タッチされている場合はアクションを実行します。
この問題(http://stackoverflow.com/questions/3295239/uigesturerecognizer-blocking-table-view-scrolling)を確認しましたが、cancelsTouchesInViewをNOに設定しても機能しませんでした。また、状態プロパティを設定する場所がありません。メソッドを使用する- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
と、「otherGestureRecognizer」をどこから取得するか、またはそのメソッドを呼び出すオブジェクトがわかりません。
ジェスチャレコグナイザーを最初の引数として配置したくないと思います。テーブルビューのスクロールジェスチャ認識機能をotherGestureRecogniserとして使用しますが、それは正しいですか?もしそうなら、どうすればそれを取得できますか?
UIPanGestureRecognizer *windPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveWindHandle:)];
[self.windRangeView addGestureRecognizer:windPanGesture];
次に、moveWindHandleで:
-(void)moveWindHandle:(UIPanGestureRecognizer *)gesture
{
gesture.cancelsTouchesInView = NO;
isMovingHandle = [self isPoint:startedTouchAt insideHandle:_toHandleWindImageView];
if(isMovingHandle) {
if(gesture.state == UIGestureRecognizerStateBegan) {
//do stuff
}
}
else
{
//i want it to ignore this gesture and just scroll like normal if that is what hte user did
}
}
tableviewcontrollerをUIGestureRecognizerDelegateとして設定しましたが、それをどうすればよいかわかりません。