在UIScrollView中滚动UITableView

Alt*_*ice 11 cocoa-touch objective-c uitableview uiscrollview ipad

我有一个UITableViewa的子视图UIView,然后UIView是a的子视图UIScrollView.如何检测应滚动的触摸UITableView

UITableView能获得项目选择事件(表中的单元格选中/抽头)就好了,但你必须按住电池它将触发之前.但我不能得到UITableView滚动,它始终是UIScrollView对平移手势的反应.

任何帮助是极大的赞赏.提前致谢!

编辑:解决了,虽然我问了错误的问题.正如Roman K所指出的,它默认工作.我认为这个问题与UITableView外部的一部分UIScrollView(UITableView超过了界限UIScrollView)有关.将其设置为正确安装在UIScrollView固定的内部.

小智 17

请确保UIScrollView's属性delaysContentTouchescanCancelContentTouches设置正确.它们控制UIScrollView实例如何将触摸信息传递给其子视图.默认delaysContentTouches设置为YES.此外,如果您进行了扩展UIScrollView,请确保touchesShouldBegin:withEvent:inContentView:允许在子视图中进行触摸.

否则,UITableView在您的方案中,默认情况下应该滚动.如果您创建的测试项目只包含所描述的视图层次结构,您将看到它是这种情况.所以,比较两者,看看有什么区别影响滚动.

  • 我认为这个逻辑在iOS8中被打破了.看起来UIScrollView将拦截垂直滚动手势而不是忽略它们.我发布了一个关于它的新问题 - http://stackoverflow.com/questions/25558630/uiscrollview-behavior-is-different-in-ios8 (3认同)