В методе viewDidAppear я инициализировал NSTimer. (self.dayView инициализируется в loadView-методе).UILabel в UITableViewCell не обновляется на NSTimer
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.timer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(reloadTableView)
userInfo:nil
repeats:YES];
}
- (void)reloadTableView {
[self.dayView.tableView reloadData];
}
И мой cellForRowAtIndexPath выглядит следующим образом:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"cell for row at indexpath called");
MatchEventCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier forIndexPath:indexPath];
MatchEvent *event = [self getMatchEventAtIndexPath:indexPath];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [calendar components:NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit
fromDate:[NSDate date]
toDate:event.startDate
options:0];
cell.textLabel.text = [NSString stringWithFormat:@"%d:%d:%d", [dateComponents hour], [dateComponents minute], [dateComponents second]];
NSLog(@"TEXT = %@", cell.textLabel.text);
return cell;
}
Как я могу проверить этот таймер в тренажере, метка в моей камере не обновляется. Когда я смотрю на NSLog, я вижу, что «TEXT = ...» новое значение, которое установлено в textLabel.
Почему мой ярлык не визуально обновляется, хотя NSLog показывает, что textLabel имеет новый текст?
не работает для меня .. я уже пытался добавить «performSelectorOnMainThread» -метод, но до сих пор ничего не кажется, будет обновляться. странно, что NSLog сообщает, что метка обновлена, но ничего визуально не изменилось. –
Как я вижу в вашем коде, NSLog не печатает ту же информацию, что и текстовая метка ячейки. Может быть, это проблема? –
Нет. Я изменил этот пример для понимания по умолчанию ... Я отредактировал вопрос, чтобы все было правильно! –