2016-07-29 38 views
1

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

} 
+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我看到你从通知中收到消息。我不知道你已经实现了什么结构。

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

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

希望它能帮助你。

+0

嗨@aarsh可以请你告诉我如何用示例代码做到这一点。我是一个新鲜人,我不知道如何做到这一点。 – AADi

0

一个忠告,它不是一个很好的方法来检查消息是否是本地新的。如果用户卸载应用程序并重新安装应用程序,则即使认为她可能已经阅读了这些消息,但所有消息对用户来说都是新的。

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

相关问题