更改表视图单元格颜色如果消息是新的

时间:2016-07-29 07:14:35

标签: ios objective-c iphone

我是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 {

}

2 个答案:

答案 0 :(得分:0)

@AADi我看到你收到来自通知的消息。我不知道你实施了什么结构。

要实现您想要的,我觉得您必须实现一个字典或数组,您可以从中获取数据。然后传递数组或字典的计数。到桌子。现在维护一个变量,该变量存储数组或字典的先前计数。在行的单元格中,将索引路径与先前的数组或字典计数进行比较。如果索引路径大于先前计数,则只需更改该索引路径上单元格的背景,并使用当前计数更新先前计数的值。

如果您不理解或有任何疑问,请在此处询问。

希望它会对你有所帮助。

答案 1 :(得分:0)

建议,这不是检查消息是否是本地新消息的好方法。如果用户卸载应用程序并重新安装它,那么即使用户可能已阅读过该消息,所有消息也会对用户显示为新消息。

更好的方法是发送布尔变量,例如seenread,以及来自服务器的消息的其他详细信息,并相应地显示单元格。要将消息标记为已读或已显示,您可以使用在后端反映它的messageID对服务器进行API调用。