iOS 在每一个cell上添加一个定时器的方案

iOS UITableView中CELL添加计时器实现自动删除的问题 最近在做一个“抢单”的功能,利用tableview来进行加载每一个单子上的数据,每个单子有60秒的生命周期。过了生命周期后会自动的删除cell. 我们都知道要删除cell,不仅需要[cellremoveFromSuperview];而且还需要删除数据源。但是由于计时器的使用,删除数据源的重新加载的时候又会遇到新的问题。 此时手动删除cell能比较简单地实现 -(UITableViewCe 阅读详情

1 首先创建一个数组,用来创建所有的定时器的时间

- (NSMutableArray *)totalLastTime
{
    if (!_totalLastTime) {
        _totalLastTime = [NSMutableArray array];
    }
    return _totalLastTime;
}

2 当从网络请求过来时间之后,循环遍历,行数和时间作为Key,将值作为value放进字典中放进数组

            // 所有剩余的时间  lastTime
            for (int i = 0; i < strongSelf.bigModel.activeTeamList.count; i ++) {
                NSDictionary *dic = strongSelf.bigModel.activeTeamList[i];
                
                NSDate *date = [SKTool changeTimeStringtoDate:dic[@"EndTime"]];
                
                double time =  [date timeIntervalSinceDate:[NSDate date]];
                
                NSMutableDictionary *para = [NSMutableDictionary dictionary];
                [para setValue:@(i) forKey:@"row"];
                [para setValue:[NSNumber numberWithDouble:time] forKey:@"lastTime"];
                [self.totalLastTime addObject:para];
            }
            

3 没定时器更新的方法中去取出row 和 时间,更新到cell 上面去,然后再将更新过的时间更新到数组中去。

- (void)refreshLessTime {
    
    NSUInteger time;
    
    for (int i = 0; i < self.totalLastTime.count; i++) {
        
        time = [[[self.totalLastTime objectAtIndex:i] objectForKey:@"lastTime"]integerValue];
        
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[[[self.totalLastTime objectAtIndex:i] objectForKey:@"row"] integerValue] inSection:1];
    
        BaoPinCellA *cell = (BaoPinCellA *)[self.tableView cellForRowAtIndexPath:indexPath];
        cell.timeLbL.text = [NSString stringWithFormat:@"剩余:%@",[self lessSecondToDay:--time]];
        NSDictionary *dic = @{@"row": [NSString stringWithFormat:@"%li",(long)indexPath.row],@"lastTime": [NSString stringWithFormat:@"%lu",(unsigned long)time]};
        [self.totalLastTime replaceObjectAtIndex:i withObject:dic];
    }
}

iOS每个Cell倒计时 实现原理: 1、将数据(数据中的时间部分),以字典(字典中包括:记录所存数据下标,还有所剩时间 两个 key)的形式保存到数组中。 2、开启定时器,执行:遍历整个数组,每秒减 一,然后保存到他原来的位置。 3、每次减一之后,根据之前记录的下标找到对应的Cell,然后修改上面的数。这样就可以了。 提示:分组类型的tableView 也是没有一点问题的。效果如AP 阅读详情

相关推荐

NSTimer在tableView上的复用

关于定时器在tableview上的复用问题

iOS cell上的定时器

转载地址:http://blog.youkuaiyun.com/littleSun_zheng/article/details/51426859 实现原理:  1、将数据(数据中的时间部分),以字典(字典中包括:记录所存数据下标,还有所剩时间 两个 key)的形式保存到数组中。  2、开启定时器,执行:遍历整个数组,每秒减 一,然后保存到他原来的位置。  3、每次减一之后,根据

lurenjia_KB的博客 3183

tableViewCell上的倒计时

类似抢购类APP的cell倒计时

IOS GCD定时器实现,UITableViewCell 上跑定时器

浏览器搜索IOS GCD定时器会有超级多的文章写这个东西。今天自己实现了一个GCD定时器不用考虑其关闭界面界面或者使用者释放其自动释放。另UITableViewCell 跑定时器丝毫没有问题。核心代码如下 -(NSString *)addTimerWithTimeInterval:(NSTimeInterval)timeInterval                             ...

sky_long_fly的专栏 2581

swift-倒计时控件包括按钮倒计时label倒计时以及在cell中的倒计时

倒计时控件,包括按钮倒计时,label倒计时以及在cell中的倒计时

iOS中让多个cell上都出现倒计时的分析与实现

前言 以前就有人问过这样一个问题:如果一个tableView的很多或者所有cell上都显示一个倒计时,该怎么实现? 今天自己恰好也遇到了这样的需求:很多产品,每个都有一个时限,在时限内才可以申购,过了申购功能就会关闭.简单描述就是,每个cell上有个倒计时,时间结束与否,点击cell响应的事件是不一样的.那么怎么实现呢?下面谈谈自己的思考过程. 1.Cell内部加一个定时器 既然每个cell都有一个倒计时,时间还可能不一样.根据”高内聚,低耦合”的思想,我首先想着直接让cell自己来实现倒计时功能:每个cell添加一个NSTimer,没隔1秒,让其显示的时间减少一秒. - (void)ti

ios 在复杂的cell里面定时器会很慢

iOS现在用定时器会用MSWeakTimer,多用来解决定时器无法释放的问题。但是在布局特别负责的cell里面加定时器的时候,会发现定时器特别慢,尤其是复用的时候要空白几秒才有倒计时,后来发现在刷新cell创建定时器的时候要把定时器开启,这样就没有空白几秒的问题  [_counterDownTimer fire];

zixinhupo572930541的博客 841

Unity3d 编译发布到安卓平台时出现的问题集

环境搭建好了,android SDK也有了,但导出的时候提示Error building Player: Win32Exception: ApplicationName='java.exe'....... 国内好像没看到解决方法。在Unity3d的论坛里面看到一个解决方法,把C:\windows\system32\java.exe复制到C:\Windows\SysWOW64里面,我这里就解决

erictang01的专栏 1773

ios怎么在cell上添加倒计时

在一个UITableView中,有多条数据,可能每一个cell对应的剩余时间不一样,所以,如何实现不同的cell中倒计时的实现?之前,考虑到需要单独为每一个cell中开启一个定时器,来监控对应cell的数据更新,但是很快发现这种方法行不通,因为不知道具体有多少条数据,这些数据都是动态从服务器获取的。所以,想到在请求最新的数据时,开启一个定时器,根据该定时器,分别对所有的需要进行倒计时显示的cell

CSND_GO 1502

[pytorch] MedicalNet 3D Resnet预训练模型迁移学习实战:从分割到分类的代码改造

本文详细介绍了如何利用PyTorch对MedicalNet 3D ResNet预训练模型进行迁移学习,从分割任务改造为分类任务。通过解析模型结构、调整分类头、加载预训练权重及优化训练策略,帮助开发者在医疗影像领域快速实现高效模型部署。文章还涵盖了数据预处理、增强技巧及模型轻量化等实用内容。

kmeans3miner的博客 245

分类模型AUC低于0.5?5个常见坑点排查指南(附代码示例)

本文针对分类模型AUC低于0.5的常见问题,提供了5个关键排查点及代码示例。从样本分布失衡、特征与标签脱节到量纲差异、模型初始化和数据泄露,详细解析了可能导致AUC异常的原因,并给出实用的诊断方法和解决方案,帮助开发者快速提升模型性能。

weixin_29190169的博客 239

iOS用定时器刷新列表Cell进行行倒计抢单功能

iOS用定时器刷新列表Cell进行行倒计抢单功能

面壁者LOGIC 3227

高德地图与CAD图叠加显示方法汇总及优缺点分析

高德地图应用在许多领域,平常我们用的地图导航,除过正常的地图导航指引功能之外,其实还有很多实用的功能。如高德影像地图应用在包括地理、土地测量、水文学、生态学、气象学以及海洋学等方面。AutoCAD在行业中常用于城市规划、平面设计、建筑师等,这其中也要用到高德地图。最常见的是CAD图与高德地图叠加使用,通过两者叠加直观显示,助力行业提高工作效率。那如何将高德地图与CAD图叠加显示呢?下面听小编把方法一一介绍下以及各种方法的优缺点。

vjmap的博客 2722

ios 如何在cell中去掉_iOS 在cell中使用倒计时的处理方法(新)

一.前言之前的文章iOS 在cell中使用倒计时的处理方法得到大量的支持, 在这先感谢大家的支持. 但是也收到不少人的回复表示不会用, 需要一一解答, 由于之前写的时候没有使用Markdown编辑, 所以现在没法更新之前的文章, 重新写一份清晰的文章需求: 每条Cell中显示倒计时, 并随时间进行倒数语言: Objective-C & Swift系统: iOSGithub地址: OY...

weixin_36243860的博客 544

以GD32F103C8T6为例的核心板原理图PCB绘制学习笔记简单总结

重点在supplier part是立创商城的编号,可以搜到。

2301_80397661的博客 3261

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:永磁同步电机(PMSM) PID转速控制仿真

*永磁同步电机(PMSM)因其高效、高功率密度和良好的动态响应特性,在现代工业自动化、电动汽车驱动系统等领域得到了广泛应用。为了实现对PMSM的速度精确控制,通常采用矢量控制(Field Oriented Control, FOC)**策略,其中PID控制器是实现速度环和电流环调节的关键组件。本教程将带你使用构建一个基于PID控制的永磁同步电机转速控制系统仿真模型PMSM电机建模矢量控制(FOC)策略实现PID控制器设计系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 6950

iOS:在cell中使用倒计时的最佳方法

一、简单介绍 在UITableViewCell中每条数据中显示该内容的倒计时, 并随时间进行倒数,这是很多电商app最常见的活动推销功能模块,自然想到用的就是计时器了。 二、基本想法 想法1:在每个cell中添加NSTimer, 负责对cell的倒数 出现的问题:ce...

dienangpiao2051的博客 452

锂电池剩余使用寿命预测(RUL) | 基于Stacked-LSTM-Autoencoder的锂电池寿命多变量多步预测(Tensorflow)

锂电池剩余使用寿命预测(RUL) | 基于Stacked-LSTM-Autoencoder的锂电池寿命多变量多步预测(Tensorflow)

前程算法屋的博客 851

iOS关于在UITableView中,实现多个cell中不同的倒计时实现

在一个UITableView中,有多条数据,可能每一个cell对应的剩余时间不一样,所以,如何实现不同的cell中倒计时的实现?之前,考虑到需要单独为每一个cell中开启一个定时器,来监控对应cell的数据更新,但是很快发现这种方法行不通,因为不知道具体有多少条数据,这些数据都是动态从服务器获取的。所以,想到在请求最新的数据时,开启一个定时器,根据该定时器,分别对所有的需要进行倒计时显示的cell

Lea__DongYang的博客 1690

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

cell延迟显示,效果好像一个一个加…

一个定时器NSTimer 定时执行下面的代码 self.cellIndex=0; self.timer = [NSTimer scheduledTimerWithTimeInterval:timeAfter target:self selector:@selector(addCell) userInfo:nil repeats:YES]; #pragma mark ---动态添加cell

The_WayHome的博客 404

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

cell上添加倒计时,以及时差问题的解决

原址http://www.cnblogs.com/zhangmaliang/p/5102518.html   最近项目中用到了tableView的多个cell倒计时系统问题,本觉得很简单的一个事,一做发现还没这么简单,就此记录。   下面方法模拟网络请求返回数据。   按照常规思路,根据网络请求返回remainTime,封装模型,存到数组中,再在表格代理方法中赋值给ce...

abaodc2308的博客 266

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IOS的基本控件的使用-定时器和视图移动

ViewController.m //  ViewController.m //  定时器和视图移动 // //  Created by mac on 2016/10/27. //  Copyright © 2016年 mac. All rights reserved. // #import "ViewController.h"

gaojian123321的博客 522

ios 如何在cell中去掉_iOS在cell中使用倒计时的处理方法

需求:在UITableViewCell中每条数据中显示该内容的倒计时, 并随时间进行倒数想法: 1.在每个cell中添加NSTimer,负责对cell的倒数出现的问题: cell有重用机制,每次重用时数据不好处理,而且每个cell的倒数数不同, 需要在重用时对NSTimer进行废除并重新开启, 如果显示的cell数量过多,需要创建很多的NSTimer对象2. 在模型中添加NSTimer, 负责对数...

weixin_39849054的博客 294

iOS中的定时器

刚看到了一朋友总结的定时器,觉得总结的不错,在这里也做个积累 iOS中定时器有三种,分别是NSTimer、CADisplayLink、dispatch_source,下面就分别对这三种计时器进行说明 一、NSTimer 创建方法 1 NSTimer *timer = [NSTimer schedu

xiaobo0134的专栏 405
上一篇: 微信支付invalid total_fee 的报错
下一篇: iOS 监听tableview 滚动距离的优雅方式
Leonardo_Fibonacci
博客等级 码龄10年 110粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值