1. 程式人生 > 其它 >OC Extension YSCountDown(cell倒計時-用於秒殺活動)

OC Extension YSCountDown(cell倒計時-用於秒殺活動)

技術標籤:UI的封裝iosobjective-cswiftxcode

**

一直覺得自己寫的不是技術,而是情懷,一個個的教程是自己這一路走來的痕跡。靠專業技能的成功是最具可複製性的,希望我的這條路能讓你們少走彎路,希望我能幫你們抹去知識的蒙塵,希望我能幫你們理清知識的脈絡,希望未來技術之巔上有你們也有我。

**

在這裡插入圖片描述
使用

@property(nonatomic,strong) YSCountDown *countDown;

賦值時間要寫在獲取資料完成的時候  重新整理tableview之前
#pragma  mark 重新整理tableveiw的代理
- (void)fastActivityViewModel:
(FastActivityViewModel *)view success:(FastActivityBaseModel *)model{ //獲取資料成功計算時間 if (self.viewModel.list != nil && ![self.viewModel.list isKindOfClass:[NSNull class]] && self.viewModel.list.count != 0) { self.countDown = [[YSCountDown alloc] initWith:self.tableview :self.viewModel.
list :self.viewModel.canRealoadList]; self.countDown.isPlusTime = NO; __weak typeof (self) weakSelf = self; //倒計時結束出來重新整理狀態 self.countDown.block = ^(NSInteger tag) { [weakSelf.viewModel.list removeAllObjects]; [weakSelf.viewModel.canRealoadList removeAllObjects]; [weakSelf.
viewModel getFastActivity]; }; } [self.tableview reloadData]; [self.tableview reloadEmptyDataSet]; } - (void)dealloc { /// 2.銷燬 [self.countDown destoryTimer]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { FastActiveCell *cell=[FastActiveCell cellWithTableView:tableView]; cell.stateLabel.text = self.viewModel.model.s_k_goods_list[indexPath.item].showTitle; cell.model = self.viewModel.model.s_k_goods_list[indexPath.item]; /// 3.繫結tag cell.tag = indexPath.row; cell.timeLabel.tag = 1314; cell.timeLabel.text = [self.countDown countDownWithPER_SEC:indexPath :self.viewModel.canRealoadList]; return cell; } 額外說明一下: 1.賦值時間要寫在獲取資料完成的時候 重新整理tableview之前 2.傳遞進去的的陣列是一個10位時間戳來的。下面的方法是計算時間的方法來的 self.viewModel.list 3. self.viewModel.canRealoadList是用來標誌倒計時結束是夠允許重新整理 原始模型 計算好的時間模型 -(void)calculateShowTimeModel:(FastActivityBaseModel *)model{ for (int i = 0; i < model.s_k_goods_list.count; i++) { //當前時間大於開始時間 有可能結束 有可能開始 if ([FastActivityViewModel getNowTimestamp] > [model.s_k_goods_list[i].kill_start_time integerValue]) { [self.list addObject:model.s_k_goods_list[i].kill_end_time]; //當前時間大於結束時間 已結束 if ([FastActivityViewModel getNowTimestamp] > [model.s_k_goods_list[i].kill_end_time integerValue]) { model.s_k_goods_list[i].activeState = @"已結束"; model.s_k_goods_list[i].showTitle = @""; [self.canRealoadList addObject:@"不可以"]; }else{//當前時間小於結束時間 進行中 model.s_k_goods_list[i].activeState = @"進行中"; model.s_k_goods_list[i].showTitle = @"距結束"; [self.canRealoadList addObject:@"可以"]; } }else{ //當前時間小於開始時間 未開始 [self.list addObject:model.s_k_goods_list[i].kill_start_time]; model.s_k_goods_list[i].activeState = @"未開始"; model.s_k_goods_list[i].showTitle = @"距開始"; [self.canRealoadList addObject:@"可以"]; } } }

效果
在這裡插入圖片描述