2016-07-29 15 views
1

私はiOSで新しくなっています。キー "messageId"でサーバーからメッセージを取得しています。私はこれらのメッセージをtableviewに表示しています。今、私は、そのテーブルビューで最初に開いている新しいメッセージがある場合は、セル内のそのメッセージの色を変更する必要があることを区別する必要があります。テーブルを変更するセルの色メッセージが新規の場合

cell.notificationMessageDate.text = [[self.notifications objectAtIndex:indexPath.row] valueForKey:@"msgCreatedDate"]; 

cell.notificationMessageText.text = [self stringByStrippingHTML:[[self.notifications objectAtIndex:indexPath.row] valueForKey:@"message"]]; 

NSString *str = [[self.notifications objectAtIndex:indexPath.row] valueForKey:@"messageId"]; 

self.isAlreadyExist = false; 


if (str) { 
    cell.backgroundColor = [UIColor whiteColor]; 
} else { 

} 
+1

あなたが試したコードを表示してください。 –

+0

私は、そのテーブルにmessageIdがすでに存在するかどうかチェックしなければなりません。それは白でなければなりません。そして、それが青の色でなければなりません。 – AADi

+0

cell.notificationMessageDate.text = [[self.notifications objectAtIndex:indexPath.row] valueForKey:@ "msgCreatedDate"]; cell.notificationMessageText.text = [self stringByStrippingHTML:[[self.notifications objectAtIndex:indexPath.row] valueForKey:@ "message"]]; NSString * str = [[self.notifications objectAtIndex:indexPath.row] valueForKey:@ "messageId"]; self.isAlreadyExist = false; if(str){ cell.backgroundColor = [UIColor whiteColor]; } else {} – AADi

答えて

0

@AADi通知からメッセージが届いています。私はあなたがどのような構造を実装しているのか知りません。

あなたが望むものを実装するためには、どこからでもデータを格納する辞書または配列を実装する必要があります。次に、配列またはdictの数を渡します。テーブルに。配列または辞書の前のカウントを格納する変数を保持します。行のセルで、インデックスパスと配列またはdictの前のカウントを比較します。インデックスパスが以前のカウントより大きい場合は、そのインデックスパスでセルの背景を変更し、直前のカウントの値を現在のカウントで更新します。

ご不明な点がございましたら、ご遠慮なくご相談ください。

ご希望の場合はお手数ですが、

+0

こんにちは@aarshは、サンプルコードでそれを行う方法を教えてください。私はもっ​​と新鮮で、私はそれをどうやって行うのか手がかりを得ていません。 – AADi

0

メッセージがローカルで新しいかどうかを確認するためのアドバイスではありません。ユーザーがアプリをアンインストールして再インストールした場合、すべてのメッセージは読者が読んでも新しいユーザーとして表示されます。

より良いアプローチは、seenまたはreadのようなブール変数を、サーバーからのメッセージの他の詳細とともに送信し、それに応じてセルを表示することです。メッセージを読んだりマークするには、そのメッセージIDをバックエンドに反映させてサーバーにAPI呼び出しを行うことができます。

関連する問題