uitableview - 如何在uitableview中使用计时器?

标签 uitableview nstimer countdown nstimeinterval

我正在获取毫秒,我想将该毫秒转换为天、小时、分钟、秒并显示,并希望在 uiTableview 中显示它。我想每秒更新一次计时器..

我使用 uiTableview 委托(delegate)方法 cellForRowAtIndexPath 尝试了此代码。

NSInteger totleTime = [[[productListDataArray objectAtIndex:indexPath.row]objectForKey:@"_auction_duration"] integerValue];


         totleTime =  totleTime - timerValue ;


         long days = (totleTime) / (60  * 60 * 24);
         long hours = (totleTime - days  * 60 * 60 * 24) / (60 * 60);
         long minuts = (totleTime - days * 60 * 60  * 24 - hours * 60 * 60) / 60;
         long seconds = (totleTime - days * 60 * 60 * 24 - hours * 60  *60 - minuts * 60);

 NSLog(@"seconds : %.f minutes : %.f hours : %.f days : %.f ", seconds, minuts, hours, days);

我已使用此方法来调用方法和更新 TableView 。但它不起作用,所以建议我另一个选择,或者告诉我我在这段代码中做错了什么。

最佳答案

我从你的问题中了解到你想每秒重新加载你的tableView。首先,我要说这是一个坏主意。如果您的 tableView 正在重新加载,那么用户将看不到任何内容。话虽如此,您可以使用具有一定间隔的计时器来调用方法。该方法可以决定何时重新加载 tableView。

编辑

根据您的上一条评论,我了解到您正在尝试在表格 View 单元格中显示倒计时器。为此,您不需要重新加载表格 View 。您只需更新数据源并重新加载显示计数器的行。沿着这些思路。

下面的代码片段是 Swift 2 中的

//Call a method named tick() every second
let timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(tick), userInfo: nil, repeats: true)

func tick() {

    //DO YOUR CALCULATIONS HERE TO CALCULATE YOUR DAYS, MINUTES, etc. THEN CALL THE FOLLOWING METHOD

    tblView.reloadRowsAtIndexPaths([NSIndexPath(forRow: {rowNumber}, inSection: {sectionNumber})], withRowAnimation: .None)

    //ALSO MAKE SURE YOUR cellForRowAtIndexPath IS CORRECTLY SETTING THE CELL VALUES
}

使用完毕后,不要忘记使其无效计时器

关于uitableview - 如何在uitableview中使用计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43513456/

相关文章:

ios - 以编程方式显示 TTTableHeaderDragRefreshView 的下拉更新消息

iphone - NSTimer scheduleTimerWithTimeInterval 和 CoreAnimation

javascript - 2 分钟后重定向页面,即使窗口未激活

ios - 自定义 uitableviewcell 中看似随机的标签文本更改

ios - 当第一次设置里面的 imageView 时,自调整单元格没有更新它的高度

ios - 如何设置 UITableView 框架以填充弹出框

iphone - 为什么 Xcode 4 将变量标记为未使用,即使它们是?

ios - 倒数计时器停止并重置为 0

java - 如何在android中暂停和恢复倒计时器

javascript - 如何在倒计时达到 0 时更新日期而不刷新浏览器