2012-04-03 79 views
2

我正在重新加載NSTimer上的特定tableview部分,這是我在0.05秒內安排的。我在該部分單元格中有一個按鈕但是一旦計時器啓動,我無法獲得按鈕單擊事件。重新加載NSTimer上的TableView部分

請幫我:) 在此先感謝

+0

您的示例代碼請附上。 – 2012-04-03 08:52:19

+0

如果細胞數量沒有改變,您可以更新可見細胞。它會更快。 – NeverBe 2012-04-03 08:53:58

+0

tableview內容多久實際更改一次?當內容變化更好時不會重新加載? – sosborn 2012-04-03 08:55:29

回答

1

你無法按下按鈕的原因是因爲你不斷地重新加載的tableView,所以當你在按下的按鈕,被重新初始化。

有兩種解決方案(一種對你更好,但沒有看到你的代碼,我不知道哪個)。

解決方案A:不是在tableview上調用reloadData,而只是更新單元格中的標籤。解決方案B:重用您的UITableViewCells,並且只在需要時初始化按鈕,而不是在每個reloadData上初始化。

+0

感謝您的回覆。解決方案A爲我工作。 – rahul 2012-04-04 14:19:15

0

退一步,想想你想在這裏做什麼:

你必須在這一個小區應該在20赫茲更新一個UITableView。

二十。赫茲。

當你reloadSections:withRowAnimation:

  1. 的TableView中請求行的該節中的數它的數據源,會發生什麼。
  2. TableView必須詢問其委託是否實現了tableView:heightForRowAtIndexPath: - 如果有,它需要調用該方法。
  3. TableView要求它的數據源爲一個單元格,然後它將嘗試出隊(如果有重用標識符...)並配置該單元格。
  4. TableView然後將這個單元格插入視圖層次結構中,刪除舊的,然後將調用佈局的子視圖。

二十。驚人的。時報。一秒。

不要那樣做!

取而代之的是,如果您真的必須執行更改。否則,你會耗盡電池,因爲所有剛加載的信息都會阻止事件循環,所以你的用戶界面會變得呆滯。