我有UITableView
包含自定义UITableViewCell
,其中包含时间(最近毫秒)。滚动时,时间文本不会更新,直到滚动停止。我知道这可能是大多数人所希望的默认行为,但我希望单元格在滚动时不断更新。有没有办法做到这一点?我在文档中找不到任何内容。
单元格使用NSTimer
递归调用更新时间函数30次。此函数更新单元格上的UILabel。
答案 0 :(得分:4)
查看this answer以获取深入阅读的内容。长话短说,您需要将计时器设置为以共同模式运行。这样它会更新,而其他东西正在采用UI线程。这就是我使用我的方式:
downloadAnimationTimer = [NSTimer scheduledTimerWithTimeInterval:.05 target:self selector:@selector(animateDownloadButtons) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:downloadAnimationTimer forMode:NSRunLoopCommonModes];
答案 1 :(得分:-2)
使用UITableViewDelegate。滚动tableView时调用此方法。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSArray* arrayVisibleCells = [tableViewContent visibleCells];
for (UITableViewCell* cell in arrayVisibleCells)
{
//update code
}
}