2012-09-21 49 views
0

我有一个简单的UITableView包含几行。每行都包含一个由UITextLabel表示的倒数计时器。当选择行时,倒计时开始。倒数开火日期由localNotification设定。开火时间显示在UITextLabelUITableView在滚动表时使用NSTimer重新加载数据

刷新表viewWillApper方法开始与下面的一行:

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(refreshTable) userInfo:nil repeats:YES]; 

refreshTable方法包含一行:

[tableView reloadData] 

一切工作正常,但是当我开始滚动tableView(不释放手指)倒数计时器不会更新。

我在refreshTable方法中设置了一个日志,以查看当我滚动表格时是否调用此方法。结果是消极的。以某种方式refreshTable方法不会调用时,我滚动tableView

有谁能告诉我如何解决这个问题?

我检查了默认的时钟应用程序(苹果)。在第一个标签(世界时钟)中由表格视图表示。每排里面都有一只红手表。虽然滚动表中的手更新,这意味着更新表视图滚动时有可能以某种方式...提前

回答

1

你看

感谢,对的UITableView类在其内部具有一个UIScrollView。您可以使用UIScrollViewDelegate强制重新加载页面。以下是文档:link。看看– scrollViewDidScroll:

遍历Table的子视图,直到找到Scroll。如果你张贴了一些代码,或许我可以帮到更多

+0

只有当我滚动表格时才会调用scrollViewDidScroll。当我停止滚动(但没有释放滚动)时,不调用此方法,倒计时定时器不更新。 – Ivan

+0

好吧,我找到了一个解决方案:''[[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];' – Ivan

+0

Lvan你可以发送完整的代码与NSTimer对象。 –

相关问题