2016-07-29 5 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 объектAtIndex: 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; если (str) { cell.backgroundColor = [UIColor whiteColor]; } else {} – AADi

ответ

0

@AADi Я вижу, что вы получаете сообщение от уведомлений. Я не знаю, какую структуру вы реализовали.

Чтобы реализовать то, что вы хотите, я чувствую, что вы должны реализовать словарь или массив, в котором вы храните свои данные из того места, где вы его извлекаете. Затем передайте счетчик массива или dict. к таблице. Теперь поддерживаем переменную, которая хранит предыдущий счетчик массива или dict. В ячейке для строки сравните путь индекса с предыдущим счетчиком массива или dict. Если путь индекса больше, чем предыдущий счет, просто измените фон для ячейки на этом пути указателя и обновите значение предыдущего счета с текущим счетчиком.

Если вы не понимаете или не сомневаетесь, задайте здесь.

Надеюсь, это поможет вам.

+0

Привет @aarsh может у, пожалуйста, скажите мне, как это сделать с образцом кода. Я свежее, и я не понимаю, как это сделать. – AADi

0

Слово совета, его не очень хороший подход, чтобы проверить, является ли сообщение новым локально. Если пользователь удаляет приложение и переустанавливает его, все сообщения будут казаться новыми для пользователя, даже если они думают, что могут их прочитать.

Лучшим подходом является отправка логической переменной, что-то вроде seen или read, а также другие детали сообщения с сервера и отображения ячеек соответственно. Чтобы пометить сообщение как прочитанное или увиденное, вы можете сделать вызов API на сервер с идентификатором messageID, отражающим его в бэкэнд.

Смежные вопросы