我有一个带静态单元格的表格。其中一个单元格内含有一个视图,上面有一个平移手势识别器。
当我滚动表格时,当到达带有平移手势识别器的视图的单元格时,滚动似乎不起作用。如果我触摸视图外面(侧面或顶部或底部),它就可以正常滚动。在我的手势识别器中,我有一个if语句,测试是否触摸了某个区域,如果是,则执行一个操作。
我查看了这个问题(https://dev59.com/MU_Sa4cB1Zd3GeqP-Tax
我假设我想将我的手势识别器作为第一个参数,将表格视图的滚动手势识别器作为otherGestureRecogniser,这样正确吗?如果是,我如何获得它?
当我滚动表格时,当到达带有平移手势识别器的视图的单元格时,滚动似乎不起作用。如果我触摸视图外面(侧面或顶部或底部),它就可以正常滚动。在我的手势识别器中,我有一个if语句,测试是否触摸了某个区域,如果是,则执行一个操作。
我查看了这个问题(https://dev59.com/MU_Sa4cB1Zd3GeqP-Tax
- (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,但是我不知道该怎么做。
windPanGesture.delegate = self
,但这并没有完全解决问题。如果我从 windRangeView 外部开始滚动,然后从 windRangeView 内部继续滚动,它可以正常工作。但是,如果 tableview 是静止的,并且我尝试从 windRangeView 内部开始滚动,则无法滚动。 - Brentoe