在我的 iOS 应用程序中,有一个 UITableView,其中一个单元格中包含一个自定义子视图。该单元格是一个交互式视图,它处理触摸事件(touchesBegan、touchesEnded、touchesMoved)以更新自身。
问题是,当用户向上或向下“拖动”时,tableView 会捕获这些触摸(尽管我没有将触摸传递到响应者链),滚动表格并阻止子视图正常工作。只要用户触摸该特定子视图,我就想阻止表格滚动。
子视图根本没有引用tableView。
如何防止表格的滚动行为?
Update
尽管接受了下面的答案,但我最终以不同的方式处理我的情况。我现在在自定义视图中处理触摸事件,将它们传递到响应者链(到表格单元格),单元格也处理触摸事件,使用它们来启用/禁用超级视图(表格)上的滚动。
关闭 UITableView 中的“可取消内容触摸”为我解决了这个问题(在滚动视图/触摸下的 UITableView 属性检查器中)。我从这个问题中得到了这个:在 UIScrollView 中滚动 UITableView https://stackoverflow.com/questions/3422915/scrolling-a-uitableview-inside-a-uiscrollview
来自 UIScrollView:canCancelContentTouches 文档:
如果该属性的值为NO,则滚动视图不滚动
一旦内容视图开始跟踪,无论手指移动如何。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)