0

我正在使用 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";
      }



}

谁能帮我。

提前致谢

4

4 回答 4

1

传入的消息存储在字典或数组中,然后重新加载 tableview 以显示到达的最新消息。

每次检索消息时都必须重新加载表视图。

于 2012-07-17T06:56:37.387 回答
1

使用以下表格视图方法将新行添加到表格中。

 -insertRowsAtIndexPaths:withRowAnimation:

希望能帮助到你....

于 2012-07-17T07:01:45.080 回答
0

您应该刷新存储表数据的 NSArray,然后 [tableView reloadData]; 例如,NSArray 的计数是 15,并且您收到一条新消息,您应该刷新 NSArray 以包含 16 个对象。

于 2012-07-17T07:24:36.673 回答
0

您的标签应添加到cell.contentView. 表格视图单元格有许多子视图,指定供您使用的是contentView.

假设您为我们的利益简化了代码,但以防万一,您必须在消息进入后存储消息(大概在您的核心数据对象中)并调用[UITableView reloadRowsAtIndexPaths:withRowAnimation:].

于 2012-07-17T07:01:41.757 回答