5

在 iOS 6 中,我有一个 UITableView,启用了拉动刷新。在顶部单元格中,我有几个自定义控件,用户可以通过拖动圆形滑块进行交互(请参阅此示例)。看截图...

在此处输入图像描述

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

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

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

关于如何实现其中任何一个的任何建议?

谢谢!

4

1 回答 1

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 / true
于 2017-12-27T09:48:54.600 回答