我有一個簡單的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對象。 –