我有一个简单的UITableView
包含几行。每行都包含一个由UITextLabel
表示的倒数计时器。当选择行时,倒计时开始。倒数开火日期由localNotification
设定。开火时间显示在UITextLabel
。UITableView在滚动表时使用NSTimer重新加载数据
刷新表viewWillApper
方法开始与下面的一行:
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(refreshTable) userInfo:nil repeats:YES];
refreshTable
方法包含一行:
[tableView reloadData]
一切工作正常,但是当我开始滚动tableView
(不释放手指)倒数计时器不会更新。
我在refreshTable
方法中设置了一个日志,以查看当我滚动表格时是否调用此方法。结果是消极的。以某种方式refreshTable
方法不会调用时,我滚动tableView
。
有谁能告诉我如何解决这个问题?
我检查了默认的时钟应用程序(苹果)。在第一个标签(世界时钟)中由表格视图表示。每排里面都有一只红手表。虽然滚动表中的手更新,这意味着更新表视图滚动时有可能以某种方式...提前
只有当我滚动表格时才会调用scrollViewDidScroll。当我停止滚动(但没有释放滚动)时,不调用此方法,倒计时定时器不更新。 – Ivan
好吧,我找到了一个解决方案:''[[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];' – Ivan
Lvan你可以发送完整的代码与NSTimer对象。 –