2012-09-21 51 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對象。 –

相關問題