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

时间:2013-02-18 09:34:05

标签: ios uitableview scroll touch

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

enter image description here

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

如果点击事件发生在这些控件的任何位置,我想禁用默认的表格滚动。我可以考虑的两个选择:

  1. 禁用该顶级单元格内任何事件的表格拖动
  2. 确保控件处理较大区域上的事件,特别是在具有透明背景的部分中
  3. 有关如何实现其中任何一项的任何建议吗?

    谢谢!

1 个答案:

答案 0 :(得分: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 {}

对于我这个圆形滑块样式,它可以正常工作。

如果仍然无法正常工作,您可以尝试在上述方法中打开/关闭tableView可滚动。

tableView.isScrollEnabled = false / ture