我想保持计时器值并从新开始显示它UITableViewCell
但我的问题是我能够成功地在第一个单元格上显示秒表计时器但是当我尝试添加一个新单元格时UITableView
我的计时器设置为第二个单元格我无法定义如何让我的第一个计时器保持活力。
我想管理一个数组,但我想每次都调用 reload TableData,但我认为这很糟糕:(
我尝试了如下解决方法,但我没有弄清楚如何在前一个单元格上显示 timerValue,从相同计数开始工作秒表动态,从开始时开始新单元格 timerValue。
一个静态解决方案,但我的行动态插入并从 TableView 中删除,因此静态解决方案限制了我的特定行数,并寻找动态解决方案。
- (void) putDelayOnTimeOut {
if (!_timerQueue) {
_timerQueue = dispatch_queue_create("timer_queue", NULL);
}
dispatch_async(_timerQueue, ^{
self.startTime = [NSDate date];
if (globalRowIndex == 0) {
_timer = [NSTimer scheduledTimerWithTimeInterval:0.6 target:self selector:@selector(showTimeoutActivity:) userInfo:nil repeats:YES];
} else if (globalRowIndex == 1) {
_timer = [NSTimer scheduledTimerWithTimeInterval:0.6 target:self selector:@selector(showTimeoutActivity1:) userInfo:nil repeats:YES];
}
//[[NSRunLoop mainRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
//[[NSRunLoop currentRunLoop] run];
[_timer fire];
});
}
- (void)showTimeoutActivity:(id)unused
{
if( [_timer isValid] )
{
NSTimeInterval interval = [self.startTime timeIntervalSinceNow];
interval = (-1 * interval);
NSString *timerString = [self formatInterval:interval];
NSLog(@"%@", timerString);
MyCell *cell = (MyCell *)[self.activeCallTbl viewWithTag:globalRowIndex+10];
//NSIndexPath *indexPath = [self.activeCallTbl indexPathForCell:cell];
//NSLog(@"%d",indexPath.row);
cell.timerLbl.text = timerString;
}
}
- (void)showTimeoutActivity1:(id)unused
{
if( [_timer isValid] )
{
NSTimeInterval interval = [self.startTime timeIntervalSinceNow];
interval = (-1 * interval);
NSString *timerString = [self formatInterval:interval];
NSLog(@"%@", timerString);
MyCell *cell = (MyCell *)[self.activeCallTbl viewWithTag:globalRowIndex+10];
//NSIndexPath *indexPath = [self.activeCallTbl indexPathForCell:cell];
//NSLog(@"%d",indexPath.row);
cell.timerLbl.text = timerString;
}
}