在某些单元格上禁用UITableView滚动

mkr*_*rus 5 scroll touch uitableview ios

在iOS 6中,我有一个UITableView,启用了pull to refresh.在顶部单元格中,我有几个海关控件,用户可以通过拖动圆形滑块进行交互(参见此示例).见截图...

在此输入图像描述

控件需要一个标签,并且需要拖动滑块指示器的拖动但是它们可能很难抓取,因为击中似乎经常在单元格背景上,导致表格拖动开始.

如果点击事件发生在那些控件上的任何地方,我想禁用表的默认滚动.我能想到的两个选择:

  1. 禁用表格拖动该顶部单元格内的任何事件
  2. 确保控件处理更大区域上的事件,特别是在具有透明背景的部分中

有关如何实现其中任何一项的任何建议?

谢谢!

Wil*_* Hu 0

我曾经对UIControl这些函数进行子类化和重写:

override func continueTracking(_ touch: UITouch, with event: UIEvent?) -> Bool { }

override func endTracking(_ touch: UITouch?, with event: UIEvent?) {}

override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {}
Run Code Online (Sandbox Code Playgroud)

这种圆形滑块风格对我来说效果很好。

如果仍然不起作用,您可以尝试在上述方法中打开/关闭 tableView 的可滚动功能。

tableView.isScrollEnabled = false / true
Run Code Online (Sandbox Code Playgroud)