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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在某些单元格上禁用UITableView滚动相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

谢谢!

答案

我曾经使用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

以上是关于在某些单元格上禁用UITableView滚动的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 在 reloadData 上向上滚动

为啥我的 UITableView 单元格上的这个按钮会重新绘制自己?

UITableView 本地图片的快速加载

UICollectionview 在滚动时更改选择/禁用选择 - iOS

滚动时 UITableViewCell 图像发生变化

如何在 uitableview 单元格上创建两个单选按钮