UITableView(在UIScrollView中)didSelectRowAtIndexPath:第一次点击时没有调用

6ro*_*od9 5 iphone objective-c uitableview uiscrollview ios

UITableView内部有一个不可滚动的UIScrollView.而且我遇到的问题是,当我触摸一行时,didSelectRowAtIndexPath:第一次点击时没有调用回调,但是在第一次点击任务工作之后.

一些注意事项:

  • 第一次点击后,表格视图正常工作,每个点击都在每个单元格中工作.
  • 这是在我滚动UIScrollView之后发生的.如果我不滚动UIScrollView,这种情况永远不会发生.
  • 我已经覆盖了UIScrollView touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view,并且事件确实在这里传递,这viewUITableViewCellContentView有效的.

我只是不知道为什么第一次没有将事件发送到该事件UITableView,而在以下事件中它也是如此.

sha*_*sha 2

如果您的UIScrollView内容包含垂直内容并且UITableView作为此内容的一部分,您至少必须禁用滚动- 否则当用户滚动您的和 时 时UITableView会让用户感到困惑,并且也会使框架感到困惑,因为不清楚将平移发送到哪里手势。mainViewtableView

根据经验,您应该避免将表视图放入其中scrollViews,除非您真的知道自己在做什么。