我有一个UITableView
里面另一个UITableview
。第一个是水平放置的,而第二个是常规的UITableView
。
水平 tableview 是一个自定义类,我在其中重载了 'gestureRecognizerShouldBegin:' 方法,这样:
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)panGestureRecognizer {
CGPoint translation = [panGestureRecognizer translationInView:someView];
return fabs(translation.y) > fabs(translation.x);
}
它主要检测用户是否在水平 tableview 上执行了水平或垂直平移运动。如果是垂直的,主tableview滚动,如果它是水平的,水平的tableview滚动。
我面临的问题如下:
- 我在水平 tableview 中执行平移触摸。
- 翻译变量的“x”和“y”值反映了用户的触摸。
- 水平 tableview 开始滚动。
- 滚动正在减速。
- 当滚动正在减速时,我执行了另一个平移触摸。
- 无论我移动多少手指,翻译变量的“x”和“y”值始终为 0。
- 我竖起手指,然后在水平表格视图(已停止滚动)中执行另一个水平平移触摸。
- translateInView 中返回的 CGPoint 的 'x' 和 'y' 值再次正确,滚动运动开始。
因此,看起来“gestureRecognizerShouldBegin:”方法无法检测到用户在滚动移动时执行的移动......
我很感激你能给我的任何提示。
谢谢!