objective-c - 当自定义 subview 处理触摸时防止 UITableView 滚动

标签 objective-c ios cocoa-touch uitableview touch

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

问题是,当用户向上或向下“拖动”时,tableView 会捕获这些触摸(尽管我没有将触摸传递到响应链),滚动表格并阻止 subview 正常工作。只要用户触摸那个特定的 subview ,我就想阻止表格滚动。

subview 根本没有对 tableView 的引用。

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


更新

尽管接受了下面的答案,但我最终以不同的方式处理我的情况。我现在在我的自定义 View 中处理触摸事件,将它们向上传递到响应链(到表格单元格),该单元格也处理触摸事件,使用它们启用/禁用 super View (表格)上的滚动。

最佳答案

关闭 UITableView 中的“Cancellable Content Touches”为我解决了这个问题(在 ScrollView /触摸下的 UITableView 属性检查器中)。我从这个 SO 问题中得到了这个:Scrolling a UITableView inside a UIScrollView

来自 UIScrollView:canCancelContentTouches 文档:

If the value of this property is NO, the scroll view does not scroll regardless of finger movement once the content view starts tracking.

关于objective-c - 当自定义 subview 处理触摸时防止 UITableView 滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673083/

相关文章:

iphone - 在 iPhone 中获取地址信息

ios - 如何在 iOS 的 UIWebview 中删除特定的 cookie

iphone - UIScrollView 未检测到折叠后的触摸

ios - 在 Scrollview 的滚动条上移动 CALayer 的 mask

ios - 如何对 Playground CIFilter 错误消息进行故障排除

objective-c - XCode 模板中的 ivars 以一个或两个下划线为前缀

iphone - 将英寸转换为厘米,反之亦然

ios - 苹果 TestFlight : Is it allowed to upload 2 beta apps for an A/B test?

iphone - 如何使用 CFNetwork 处理 iOS 上的互联网连接中断?

javascript - 存储来自 UIWebView 的带有关联 CSS 和 JS 文件的 HTML,以便在 iOS 中离线使用