我正在處理某種聊天iphone應用程序,我正面臨着一個我無法解決的問題。
我看到了幾個答案,但似乎沒有解決這個問題。ios:UITableViewCell在滾動時消失
我使用TableView來顯示消息,當我不時滾動時,單元格會失望。我必須回到父視圖(導航控制器用於推送我的聊天視圖的視圖),然後返回到聊天視圖以查看單元格。
我有以下方法:
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
// static NSString* CellIdentifier = @"MessageCellIdentifier";
// MessageTableViewCell* cell = (MessageTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//if (cell == nil){
MessageTableViewCell* cell = [[[MessageTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
SharethingsAppDelegate *delegate = (SharethingsAppDelegate *)[[UIApplication sharedApplication] delegate];
ChatMessage* message = [[delegate.dataModel getMessagesOfChatWithID:self.chatID] objectAtIndex:indexPath.row];
[cell setMessage:message];
//}
return cell;
}
我試圖保持測試「細胞==零」,但同樣的事情。
我想這是某種細胞重複使用的問題,但......無法真正弄清楚它到底是什麼。
有什麼想法?
該代碼看起來不錯,所以我不確定發生了什麼事情。你是否檢查過消息消失後'消息'仍然是非'nil'?此外,你的任何機會'tableView:numberOfRowsInSection:'開始返回'0'? – mattjgalloway 2012-01-10 09:46:07
@mattjgalloway其實我可以看到行(我使用自定義視圖單元格),但內容是空的。我會添加更多日誌並保持發佈。謝謝。 – Luc 2012-01-10 10:07:36
如果內容爲空,那麼可以推測'message'是'nil'或者你的自定義單元沒有正確響應'setMessage:'並相應地重畫自己。儘管懷疑後者,因爲您目前每次都在創建新單元格。 – mattjgalloway 2012-01-10 10:10:02