2013-02-18 39 views
5

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

enter image description here

控制需要滑块指标需要拖,但他们可能会非常棘手抓住尽可能命中似乎往往是在单元格背景,引起的标记和拖动桌面拖动踢。

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

  1. 禁用表上方单元格中的任何事件拖动
  2. 确保控制手柄上的面积较大的事件,特别是如果他们有一个透明的背景部分

关于如何实现这些任何建议的任何建议?

谢谢!

+0

试试这个:tableView.scrollEnabled = NO; – Vinodh 2013-02-18 09:44:01

+1

据我所知,我的问题是,我希望表格可以拖动和滚动,除非第一行发生触摸事件(在这种情况下,我希望事件仅转到滑块) – mkrus 2013-02-24 18:15:18

回答

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