我正在处理某种聊天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