我是iOS新手所以请帮助我。我从服务器获取了一些带有密钥" messageId "的消息。我在tableview中显示这些消息。现在我必须区分一下,如果在该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 {
}
答案 0 :(得分:0)
@AADi我看到你收到来自通知的消息。我不知道你实施了什么结构。
要实现您想要的,我觉得您必须实现一个字典或数组,您可以从中获取数据。然后传递数组或字典的计数。到桌子。现在维护一个变量,该变量存储数组或字典的先前计数。在行的单元格中,将索引路径与先前的数组或字典计数进行比较。如果索引路径大于先前计数,则只需更改该索引路径上单元格的背景,并使用当前计数更新先前计数的值。
如果您不理解或有任何疑问,请在此处询问。
希望它会对你有所帮助。
答案 1 :(得分:0)
建议,这不是检查消息是否是本地新消息的好方法。如果用户卸载应用程序并重新安装它,那么即使用户可能已阅读过该消息,所有消息也会对用户显示为新消息。
更好的方法是发送布尔变量,例如seen
或read
,以及来自服务器的消息的其他详细信息,并相应地显示单元格。要将消息标记为已读或已显示,您可以使用在后端反映它的messageID对服务器进行API调用。