有這個愚蠢的小東西令人討厭,我很想聽聽你對此的看法。UITableView佔位符用於出列單元格
我正在使用帶有自定義UITableViewCell的UITableView來顯示RSS提要中的一些新聞項目。這是工作很好,
唯一的問題是 - 當向下滾動,我看到「舊」單元格,並且只有當我的滾動停止時,它會加載新的內容。
所以我的問題是 - 我可以以某種方式把一個佔位符,所以它至少會顯示滾動或其他類型的指示「加載」?
感謝提前:)
夏嘉曦
有這個愚蠢的小東西令人討厭,我很想聽聽你對此的看法。UITableView佔位符用於出列單元格
我正在使用帶有自定義UITableViewCell的UITableView來顯示RSS提要中的一些新聞項目。這是工作很好,
唯一的問題是 - 當向下滾動,我看到「舊」單元格,並且只有當我的滾動停止時,它會加載新的內容。
所以我的問題是 - 我可以以某種方式把一個佔位符,所以它至少會顯示滾動或其他類型的指示「加載」?
感謝提前:)
夏嘉曦
你什麼時候你充滿內容的單元格,通常你在UITableViewDataSource
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
這不這樣做將被調用每前,需要一個時間單元顯示它。如果你設置數據格式,這個單元格在顯示之前會被更新。
如果您從網上抓取某些東西需要一些時間,那麼您可以在此處設置從網絡抓取的任何內容到裝載或佔位符圖片。
然後在UITableViewDelegate
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
啓動數據的異步獲取和接收到數據時更新該小區。
willDisplayCell解決方案聽起來正是我所需要的!生病嘗試,謝謝! :) –
嘿,我試過以下沒有成功,任何想法我做錯了什麼? http://pastebin.com/hUGvGt5x –
你在tableview中使用webview嗎?問題在於你對web視圖沒有足夠的控制權。它只會開始加載,我們可以看到它。 – rckoenes
爲避免新單元格中以前數據的重複,請使用唯一的CellIdentifier。
NSString *CellIdentifier = [NSString stringWithFormat:@"%i", indexPath.row];
NewsCell *cell = (NewsCell *) [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
if (cell == nil)
{
cell = [[ActivitiesCell alloc] initWithStyle:UITableViewStylePlain reuseIdentifier:CellIdentifier];
}
在NewsCell.m文件,用下面的代碼,並通過調用initWithStyle方法,而不是使用加載新的細胞loadNibNamed。
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
{
// Initialization code.
}
return self;
}
這似乎不是一個好主意,因爲它會在內存中創建許多單元格,而不是重新使用一個這是我想要的 - 我只是想要一種方法來把一些「加載「,而滾動後更新數據。 –
它將重複使用具有相同標識符的相同單元。 –
是的,但它仍然會爲每個單元格創建一個標識符,不是嗎?關鍵是所有細胞都有一個標識符 - 我想。我對UITableView的使用經驗相當缺乏:) –
你能告訴我們你的代碼,特別是cellForRowAtIndexPath和你正在調用更新你的自定義單元格的方法嗎?謝謝 – MartinMoizard
嘿馬丁,這裏是:)謝謝http://pastebin.com/2acWU42Y –