在UIScrollView中滚动UITableView
我有一个UITableView
这是UIView
的子视图,那么UIView
是UIScrollView
的子视图。如何检测应该滚动UITableView
的触摸?在UIScrollView中滚动UITableView
UITableView
可以得到项目选择事件(表格中的一个单元格被选中/点击)就好了,除了在单元格被触发前不得不按住单元格。但我无法滚动UITableView
,它总是对平移手势做出反应的UIScrollView
。
任何帮助,非常感谢。提前致谢!
编辑: 解决了,虽然我问了错误的问题。它在罗马K指出的默认情况下工作。我认为问题与的一部分在UIScrollView
的范围之外有关(UITableView
超过UIScrollView
的底部范围)。将其设置为正确安装在UIScrollView
内部。
请确保UIScrollView's
属性delaysContentTouches
和canCancelContentTouches
设置得当。它们控制UIScrollView实例如何将触摸信息传递给子视图。默认delaysContentTouches
设置为YES。此外,请确保,如果您扩展UIScrollView
,则允许在子视图中触摸touchesShouldBegin:withEvent:inContentView:
。
否则,UITableView
滚动应该在您的方案中默认工作。如果您使用所描述的视图层次结构创建测试项目,您将看到它是这种情况。所以,比较两者,看看有什么区别影响滚动。
我相信我设置delaysContentTouches(设置为YES)和canCancelContentTouches(设置为NO)就好了。我能够在UITableView中轻松点击,但不能轻扫和平移。 – Altealice 2010-08-07 08:18:48
谢谢。这已经很痛苦了。 – thedp 2013-10-25 14:31:43
我认为这个逻辑在iOS8中被破坏了。看起来UIScrollView会拦截垂直滚动手势,而不会忽略它们。我发布了一个关于它的新问题 - http://stackoverflow.com/questions/25558630/uiscrollview-behavior-is-different-in-ios8 – sha 2014-08-28 22:15:01
我想建议这个答案 http://stackoverflow.com/questions/3422915/scrolling-a-uitableview-inside-a-uiscrollview/32486714#32486714 – 2015-09-09 18:27:33