当自定义子视图处理触摸时,防止UITableView滚动

Asc*_*iom 3 cocoa-touch objective-c touch uitableview ios

在我的iOS应用程序中有一个UITableView,其中包含一个自定义子视图.此单元格是一个交互式视图,用于处理触摸事件(touchesBegan,touchesEnded,touchesMoved)以更新自身.

问题是,当用户'向上或向下拖动'时,tableView会捕获这些触摸(虽然我没有通过响应器链上的触摸),滚动表并阻止子视图正常工作.我想阻止表滚动,只要用户触摸该特定子视图.

子视图根本没有对tableView的引用.

如何防止表格的滚动行为?


更新

尽管接受了下面的答案,我最终还是以不同的方式处理了我的情况.我现在在自定义视图中处理触摸事件,将它们传递给响应者链(到表格单元格),单元格也处理触摸事件,使用它们来启用/禁用超级视图(表格)上的滚动.

Sym*_*ric 8

关闭UITableView中的"可取消内容触摸"解决了这个问题(在Scroll View/Touch下的UITableView属性检查器中).我从这个问题得到了这个:在UIScrollView中滚动UITableView

从UIScrollView:canCancelContentTouches doc:

如果此属性的值为NO,则在内容视图开始跟踪后,无论手指移动,滚动视图都不会滚动.