1

我有一个UITableView里面另一个UITableview。第一个是水平放置的,而第二个是常规的UITableView

水平 tableview 是一个自定义类,我在其中重载了 'gestureRecognizerShouldBegin:' 方法,这样:

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)panGestureRecognizer {
    CGPoint translation = [panGestureRecognizer translationInView:someView];
    return fabs(translation.y) > fabs(translation.x);
}

它主要检测用户是否在水平 tableview 上执行了水平或垂直平移运动。如果是垂直的,主tableview滚动,如果它是水平的,水平的tableview滚动。

我面临的问题如下:

  1. 我在水平 tableview 中执行平移触摸。
  2. 翻译变量的“x”和“y”值反映了用户的触摸。
  3. 水平 tableview 开始滚动。
  4. 滚动正在减速。
  5. 当滚动正在减速时,我执行了另一个平移触摸。
  6. 无论我移动多少手指,翻译变量的“x”和“y”值始终为 0。
  7. 我竖起手指,然后在水平表格视图(已停止滚动)中执行另一个水平平移触摸。
  8. translateInView 中返回的 CGPoint 的 'x' 和 'y' 值再次正确,滚动运动开始。

因此,看起来“gestureRecognizerShouldBegin:”方法无法检测到用户在滚动移动时执行的移动......

我很感激你能给我的任何提示。

谢谢!

4

0 回答 0