即使滚动,也允许UITableViewCell更新内容

时间:2013-12-06 17:12:51

标签: ios objective-c uitableview

我有UITableView包含自定义UITableViewCell,其中包含时间(最近毫秒)。滚动时,时间文本不会更新,直到滚动停止。我知道这可能是大多数人所希望的默认行为,但我希望单元格在滚动时不断更新。有没有办法做到这一点?我在文档中找不到任何内容。

单元格使用NSTimer递归调用更新时间函数30次。此函数更新单元格上的UILabel。

2 个答案:

答案 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
    }
}