6

我添加了两个滑动手势识别器(向左滑动和向右滑动)到我的UITableView. 之后我的表格视图停止滚动。同时-(void)didSelectRowAtIndex工作正常。可能是什么问题?

我所做的只是将对象库中的滑动手势识别器拖放到我的 UITableView 上。

如果我删除它们,我的表格会再次开始滚动。

升级版:

这发生在升级到 Xcode 4.5 之后。在旧版本的 Xcode 中没有这样的问题。为了避免这种行为 - 以UIGestureRecognizers编程方式添加,而不是在 IB 中。

4

4 回答 4

6

试试下面的代码可能对你有帮助....在viewDidLoad:方法中编写下面的代码

UISwipeGestureRecognizer *swipeGestureObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideOpen_Clicked:)] autorelease];//yourSlideOpen_Clicked is method name where you doing something
swipeGestureObjectImg.numberOfTouchesRequired = 1;
swipeGestureObjectImg.direction = (UISwipeGestureRecognizerDirectionLeft);
[yourView addGestureRecognizer:swipeGestureObjectImg];

UISwipeGestureRecognizer *swipeGestureRightObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideClose_Clicked:)] autorelease];//yourSlideClose_Clicked is method name where you doing something
swipeGestureRightObjectImg.numberOfTouchesRequired = 1;
swipeGestureRightObjectImg.direction = (UISwipeGestureRecognizerDirectionRight);
[yourView addGestureRecognizer:swipeGestureRightObjectImg];

如果这里 tableview 是 UIView 类的子视图,那么使用上面的代码,否则只需尝试“yourView”的“youtTableview”

我希望这可以帮助你...

:)

于 2012-09-14T11:24:48.810 回答
1

设置手势识别器的属性 cancelsTouchesInView = NO

于 2012-09-14T11:19:24.100 回答
1

我遇到了同样的问题:我曾经将 TabGestureRecognizer 直接拖到情节提要上,而不是通过代码创建它们。在 iOS6 中,这似乎打破了滚动。

我更喜欢将视图、手势等直接添加到故事板上,而不是通过代码。

您仍然可以执行此操作,但需要进行两项更改:

1) 参考奥特莱斯收藏

  • 右键单击场景停靠栏中您可以看到的 GestureRecognizer。
  • 清除参考插座集合部分

2)通过代码将GestureRecognizer附加到相关视图

  • 为您的 GestureRecognizer 创建一个出口
  • 在 viewDidLoad 方法中添加以下行:

    [self.tableView addGestureRecognizer:_tabGesture];

于 2012-10-02T13:31:08.523 回答
0

我遇到了同样的问题,我通过将手势识别器链接到视图而不是表视图来解决它。

  1. 显示故事板。
  2. 显示连接检查器。
  3. 显示文档大纲。
  4. 在手势识别器和视图控制器下的视图节点之间的“引用插座集合”处创建新链接。

问候。佩德罗。

于 2013-06-18T18:28:21.680 回答