У меня есть табличное представление в моем приложении для обмена сообщениями с пользовательскими tableviewcells. Этот столбец заполнен массивом из JSON. У меня есть UIImageView в ячейке, где отображается изображение с голубой точкой, если сообщение не прочитано.UITableViewCell ImageView не обновляется
Вот код:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES];
messagesArray = [self getMessages];
[messagesTableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"MessagesCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
NSDictionary *messagesDictionary = [messagesArray objectAtIndex:indexPath.row];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
nameLabel.text = [messagesDictionary objectForKey:@"fromUserName"];
UIImageView *readImage = (UIImageView *)[cell viewWithTag:103];
NSNumber *boolNumber = [messagesDictionary valueForKey:@"readFlag"];
BOOL read = [boolNumber boolValue];
if (!read)
readImage.image = [UIImage imageNamed:@"Message Read Circle"];
return cell;
}
При выборе сообщения, я отправляю сообщение на сервер, чтобы сообщить ему о том, что сообщение читается, но когда я иду назад, он все еще имеет непрочитанное изображение , Если я уйду из приложения в симуляторе и перезагрузите приложение, непрочитанное изображение исчезнет из сообщения, которое я выбрал, поэтому я знаю, что метка читается как прочитанное сообщение. Почему не будет [messagesTableView reloadData]
?
Когда вы обновляете 'messagesArray', чтобы установить' readFlag'? – Wain
В 'viewDidAppear'. Разве это не вызвано, когда я возвращаюсь к этому табличному представлению из сообщения? –
Мое предположение (лучше всего я могу предоставить предоставленную информацию) заключается в том, что вы вызываете 'reloadData' до того, как у сервера есть возможность завершить. Вы обновляете информацию о сервере, а затем успешно перезагружаете таблицу? –