当UITableView滚动时,UITableViewCell动画停止

Tys*_*Tys 4 objective-c uitableview ios

我正在我的应用程序中创建一个"事件倒计时"场景,该场景使用UITableViewController来显示将来发生的事件列表.在每个单元格中,我有一个倒数计时器,它会计算事件发生前的时间.

在此输入图像描述

我想为这些倒计时字段设置动画,以便实时记下这些字段.我已经实现了这个动画,但问题是当用户滚动uitableview时动画暂停,直到用户释放滚动.我希望动画即使在滚动时也能继续.

我动画的方式是每隔0.25秒在NSTimer上调用[self.tableview reloadData](我知道这不是最有效的方法 - 这更像是测试动画本身).我还尝试在UITableViewCell本身内运行NSTimer调用视图更新 - 但滚动时仍然会暂停动画.

任何人都知道调用动画的设置或替代方式,以便在滚动时保持它的运行状态?

Tys*_*Tys 10

更多关于UIScrollViews的同一问题的搜索引发了我的帖子我的自定义UI元素......

基本上发生的事情是我正在使用的NSTimer在滚动时没有被更新,因为滚动阻止了它自己的运行循环模式之外的所有内容.修复是将动画NSTimer添加到滚动使用的相同运行循环模式:NSRunLoopCommonModes

以下是如何在代码中执行此操作:

NSTimer *timer = [NSTimer timerWithTimeInterval:0.25 self selector:@selector(updateCountdownLabels) userInfo:nil repeats:YES]; 
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
Run Code Online (Sandbox Code Playgroud)