【发布时间】:2014-02-05 07:21:23
【问题描述】:
在 viewDidAppear 方法中,我初始化了一个 NSTimer。 (self.dayView 在 loadView 方法中初始化)。
- (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 有一个新文本?
【问题讨论】:
标签: objective-c uitableview nstimer