TableView交互阻止单元格中的动画

时间:2012-12-08 18:33:18

标签: objective-c ios uitableview

我在tableview单元格中有一个进度指示器,当用户与tableview交互时,它不会更新其进度。当交互停止时,指标会跳到应该的位置。

如何避免动画,即使用户正在滚动桌面视图,动画也会继续?

可以将它们添加到runloop中吗?如果交互和动画都需要在主线程上发生,那么可以做些什么工作呢?

1 个答案:

答案 0 :(得分:3)

首先,您应确保确实希望更新这些进度指示器 - 滚动时UIScrollView类型类的默认行为是暂停其中的任何UI更新以保持响应。每当我尝试做任何额外的事情时,我发现像滚动速度这样的事情会迅速降低,特别是在旧设备上。

除了警告,我们该怎么做?好吧它看起来像this question has a solution for you。简要总结如下:

  • 滚动将runloop置于UITrackingRunLoopMode
  • 当runloop处于此模式时,您的更新代码未触发
  • 解决方案:让NSTimer触发您的进度指示器更新,在NSRunLoopCommonModes中运行该计时器,以便在滚动时仍然会触发。

就是这样。滚动时,UIView更新不是问题,运行触发更新的代码。通过使用“防滚动”计时器,您的指标应该更新得很好。 linked question, so do click through to read上有一些很好的示例代码!

相关问题