我正在使用xmpp开发聊天应用程序。我可以发送和接收消息。我的联系人在tableview这里我的问题是当有来自在线用户的消息然后我想在我的tableview中的在线用户行显示消息符号。当那行被选中消息符号将消失。
我尝试了使用标签但不实现
的方式-(UITableViewCell*)tableView:(UITableView *)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier=@"cell";
UITableViewCell *cell=[tableView1 dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell==nil)
{
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
XMPPUserCoreDataStorageObject *user1= [[self fetchedResultsController] objectAtIndexPath:indexPath];
cell.textLabel.text = user1.displayName;
UILabel *lblText = [[UILabel alloc] initWithFrame:CGRectMake(290,16,10,20)];
lblText.textColor = [UIColor orangeColor];
[cell addSubview:lblText];
if([cell.textLabel.text isEqualToString:user1.jidStr])
{
lblText.text=@"g";
}
}
任何人都可以帮助我。
提前致谢
答案 0 :(得分:1)
字典或数组中的传入消息存储然后重新加载tableview以显示到达的最新消息。
每次邮件检索时都必须重新加载表格视图。
答案 1 :(得分:1)
使用下面的表视图方法向表中添加新行..
-insertRowsAtIndexPaths:withRowAnimation:
希望它有所帮助......
答案 2 :(得分:0)
您的标签应添加到cell.contentView
。表格视图单元格有许多子视图,指定供您使用的是contentView
。
假设您为了我们的利益简化了代码,但为了以防万一,您必须在消息进入后存储消息(可能在您的Core Data对象中)并调用[UITableView reloadRowsAtIndexPaths:withRowAnimation:]
。
答案 3 :(得分:0)
你应该刷新存储表数据的NSArray,然后[tableView reloadData];例如,NSArray的计数是15,并且您收到一条新消息,您应该刷新NSArray以包含16个对象。