0

私は xmpp を使用してチャット アプリケーションを開発しています。メッセージを送受信できます。私の連絡先はテーブルビューにあります。オンライン ユーザーからのメッセージがある場合に問題が発生し、テーブルビューのオンライン ユーザー行にメッセージ シンボルを表示したいです。その行が選択されている場合メッセージ記号が消えます。

ラベルを使用して次の方法を試しましたが、達成できませんでした

-(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

辞書または配列に受信メッセージを保存してから、テーブルビューをリロードして、到着した最新のメッセージを表示します。

メッセージを取得するたびにテーブルビューをリロードする必要があります。

于 2012-07-17T06:56:37.387 に答える
1

次のテーブル ビュー メソッドを使用して、新しい行をテーブルに追加します。

 -insertRowsAtIndexPaths:withRowAnimation:

それが役に立てば幸い....

于 2012-07-17T07:01:45.080 に答える
0

テーブル データを格納した NSArray を更新してから、[tableView reloadData]; たとえば、NSArray の数が 15 で、1 つの新しいメッセージを受け取った場合、NSArray を更新して 16 個のオブジェクトを含める必要があります。

于 2012-07-17T07:24:36.673 に答える
0

にラベルを追加する必要がありますcell.contentView。テーブル ビュー セルには多くのサブビューがあり、使用するように指定されているのは ですcontentView

私たちの利益のためにコードを単純化したと仮定しますが、念のため、メッセージが入った後に (おそらく Core Data オブジェクトに) 保存し、 を呼び出す必要があります[UITableView reloadRowsAtIndexPaths:withRowAnimation:]

于 2012-07-17T07:01:41.757 に答える