每次textFieldShouldReturn
调用方法时,我的用户都会创建一个新的表格单元格。我想在该单元格中添加一个计时器作为字幕,以便每个单元格都有不同的计时器。当计时器用完时,我需要细胞自我毁灭。
我只是在这里寻找方向,你认为我应该怎么做?
每次textFieldShouldReturn
调用方法时,我的用户都会创建一个新的表格单元格。我想在该单元格中添加一个计时器作为字幕,以便每个单元格都有不同的计时器。当计时器用完时,我需要细胞自我毁灭。
我只是在这里寻找方向,你认为我应该怎么做?
一种简单的方法是创建一个 CountDown 类和一个 CountDownDelegate 协议。
CountDown 类将响应处理计时器并在倒计时达到 0 时调用委托上的方法。countDownDidReachesZero:(CountDown *)countDown
然后您的 UIViewController(或 UITableViewController)将倒计时列表保存在一个数组中并符合 CountDownDelegate。
- (void)countDownDidReachesZero:(CountDown *)countDown
{
NSMutableArray *array = [self.countdowns mutableCopy];
[array removeObject:countDown];
self.countdowns = array; //if property is set with copy flag
[self.tableView reloadData]; // get index and remove cell with effect would be better
}
- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
NSMutableArray *array = [self.countdowns mutableCopy];
[array addObject:[[CountDown alloc] init]];
self.countdowns = array;
[self.tableView reloadData]; //or add the cell with effect
return YES;
}
要更新 detailLabel.text,您也可以使用 CountDownDelegate 协议进行更新。一件好事应该是只有一个静态 NSTimer 更新所有倒计时。