ios怎么在cell上添加倒计时

iOS每个Cell倒计时 实现原理: 1、将数据(数据中的时间部分),以字典(字典中包括:记录所存数据下标,还有所剩时间 两个 key)的形式保存到数组中。 2、开启定时器,执行:遍历整个数组,每秒减 一,然后保存到他原来的位置。 3、每次减一之后,根据之前记录的下标找到对应的Cell,然后修改上面的数。这样就可以了。 提示:分组类型的tableView 也是没有一点问题的。效果如AP 阅读详情
在一个UITableView中,有多条数据,可能每一个cell对应的剩余时间不一样,所以,如何实现不同的cell中倒计时的实现?之前,考虑到需要单独为每一个cell中开启一个定时器,来监控对应cell的数据更新,但是很快发现这种方法行不通,因为不知道具体有多少条数据,这些数据都是动态从服务器获取的。所以,想到在请求最新的数据时,开启一个定时器,根据该定时器,分别对所有的需要进行倒计时显示的cell进行数据修改。最后,功能已经实现,核心代码如下:

//所有剩余时间数组
NSMutableArray *totalLastTime;
在网络请求到的所有数据中,根据需要将其中要进行倒计时显示的数据中的剩余时间单独保存出来,如果这里是所有的数据都需要倒计时,则只需要保存时间即可,如果是有部分数据才需要倒计时,则可以保存字典,两个键值对分别为其在UITableView的indexPath和剩余时间:num默认从0开始
NSDictionary *dic = @{@"indexPath":[NSStrin stringWithFormat:@"%i",num],@"lastTime": order.payLastTime};
 [totalLastTime addObject:dic];
开启定时器方法:
- (void)startTimer
{
    timer = [NSTimer scheduledTimerWithTimeInterval:1 target:selfselector:@selector(refreshLessTime) userInfo:@"" repeats:YES];
 
如果不添加下面这条语句,在UITableView拖动的时候,会阻塞定时器的调用
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:UITrackingRunLoopMode];
 
}

主要的定时器中的方法,在该方法中,遍历totalLastTime,取出其中保存的lasttime和indexpath,time用来显示,在显示完后自减,indexpath代表对应显示的位置,在一次循环后,将新的time和没有改变的indexpath从新替换totalLastTime 中对应位置的元素,以此保证每一秒执行时,显示time都是最新的。
- (void)refreshLessTime
{
    NSUInteger time;
    for (int i = 0; i < totalLastTime.count; i++) {
        time = [[[totalLastTime objectAtIndex:i] objectForKey:@"lastTime"]integerValue];
        NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection:[[[totalLastTime objectAtIndex:i] objectForKey:@"indexPath"] integerValue]];
        WLServiceOrderTableViewCell *cell = (WLServiceOrderTableViewCell *)[_tableView cellForRowAtIndexPath:indexPath];
        cell.remainingTimeLabel.text = [NSString stringWithFormat:@"剩余支付时间:%@",[self lessSecondToDay:--time]];
        NSDictionary *dic = @{@"indexPath": [NSStringstringWithFormat:@"%i",indexPath.section],@"lastTime": [NSStringstringWithFormat:@"%i",time]};
        [totalLastTime replaceObjectAtIndex:i withObject:dic];
    }
}

- (NSString *)lessSecondToDay:(NSUInteger)seconds
{
    NSUInteger day  = (NSUInteger)seconds/(24*3600);
    NSUInteger hour = (NSUInteger)(seconds%(24*3600))/3600;
    NSUInteger min  = (NSUInteger)(seconds%(3600))/60;
    NSUInteger second = (NSUInteger)(seconds%60);
    
    NSString *time = [NSString stringWithFormat:@"%lu日%lu小时%lu分钟%lu秒",(unsigned long)day,(unsigned long)hour,(unsigned long)min,(unsigned long)second];
    return time;
 
}
iOS UITableView中CELL添加计时器实现自动删除的问题 最近在做一个“抢单”的功能,利用tableview来进行加载每一个单子上的数据,每个单子有60秒的生命周期。过了生命周期后会自动的删除cell. 我们都知道要删除cell,不仅需要[cellremoveFromSuperview];而且还需要删除数据源。但是由于计时器的使用,删除数据源的重新加载的时候又会遇到新的问题。 此时手动删除cell能比较简单地实现 -(UITableViewCe 阅读详情

相关推荐

ios-tableview cell 倒计时.zip

tableview cell 倒计时

iOS开发之UITableViewCell可暂停倒计时

前言 最近开发中,用到了UITableViewCell倒计时功能,这里将这部分功能分离出来,供大家参考。 1.原理 考虑到APP性能,这里只创建一个定时器,定时刷新当前正在显示的UITableViewCell,使用Model记录剩余倒计时时间和当前UITableViewCell是否暂停。 2.核心代码 创建定时器 考虑到方便和不需要销毁,这里定时器使用GCD—>GCD定时器封装OC&...

weixin_34614165的博客 425

tableViewCell上的倒计时

类似抢购类APP的cell倒计时

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

1 首先创建一个数组,用来创建所有的定时器的时间 - (NSMutableArray *)totalLastTime { if (!_totalLastTime) { _totalLastTime = [NSMutableArray array]; } return _totalLastTime; } 2 当从网络请求过来时间之后,循环遍历,行数和时间作...

github_36850997的博客 2421

ios-tableView定义倒计时显示.zip

在tableview的cell中显示一个倒计时demo给大家参考下暂时没实现获取毫秒的方法,如果大家有方法欢迎提出修改。。。感激不尽。

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

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

iOS 在cell中使用倒计时的处理方法(新)

本文来自简书,原文地址:http://www.jianshu.com/p/af62a56ef7e2 前言 之前的文章iOS 在cell中使用倒计时的处理方法得到大量的支持, 在这先感谢大家的支持. 但是也收到不少人的回复表示不会用, 需要一一解答, 由于之前写的时候没有使用Markdown编辑, 所以现在没法更新之前的文章, 重新写一份清晰的文章 需求: 每条Cell中显示倒

努力,可能成功!放弃,注定失败! 2341

ENU坐标系实战:5分钟搞定无人机导航中的站心坐标转换

本文针对无人机导航中GPS坐标与视觉感知不匹配的定位漂移问题,提供了基于ENU坐标系的实战解决方案。通过Python代码演示了如何快速、精准地实现地心地固坐标与站心坐标之间的转换,并详细解释了转换原理、精度对比及工程优化技巧,帮助开发者从根本上解决局部相对定位不准的难题。

mqtt6iot的博客 552

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

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

weixin_34198762的博客 812

读取rosbag中的IMU信息并转为tum格式的csv和txt

rostopic -b xx.bag -p /xx > xxx.txt #for euroc structvio import os, sys,re,csv name="street_07" # basedir="/media/yinjie/2498AF1F98AEEF0C/adataset/15results/imu_bagtxt/"+name+'.txt' # txtdir="/media/yinjie/2498AF1F98AEEF0C//adataset/15results/imu_o

qq_42928559的博客 1919

【SLAM】SVO2.0编译运行和论文代码解读

SVO2是我遇到的最难编译的代码了,可能公开版本不能放太鲁棒的代码吧,搞了快一个星期,终于跑起来了。

iwanderu的博客 5972

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

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

weixin_36243860的博客 544

STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能

单片机实现LWIP的调试

qq_40600203的博客 3068

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

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

abaodc2308的博客 266

PCB过孔电流承载解析:完整指南与数据参考

深入解析PCB过孔的电流承载能力,结合实际应用场景提供可靠设计参考。涵盖影响载流的关键因素,并整理实用的pcb过孔与电流对照一览表,帮助工程师优化布局与布线。

weixin_35677363的博客 630

博图HMI多语言文本列表一键生成攻略:从Excel模板到TIA Portal的完整流程

本文详细介绍了如何利用Excel模板和TIA Portal API实现博图HMI多语言文本列表的一键生成。通过标准化Excel模板设计、解析TIA Portal的XML结构,并结合C#代码实现自动化导入,大幅提升多语言项目的开发效率。特别适用于需要支持多语言版本的自动化设备HMI界面开发。

weixin_26934905的博客 218

Swift - UITableViewCell倒计时重用解决方案

Swift - UITableViewCell倒计时重用解决方案   效果   源码 https://github.com/YouXianMing/Swift-Animations // // CountDownTimerController.swift // Swift-Animations // // Created by YouXianMing on 1...

weixin_34074740的博客 402

AD24-层次原理图的设计

4)在原理图关联对话框中双击需要放置方块图的子图,即激活方块图的放置,单击母图的空白处进行放置。3)设计-Create Sheet From Sheet,进入原理图关联对话框。4)放置-添加图纸入口,放置方块图的内部I/O端口并进行名称更改。2)放置-页面符,放置页面符,并执行Table完成属性设置。5)执行Ctrl+W,端口和内部I/O端口对应连接。1)创建一个工程并完成子图的每页原理图的设计。1)新建项目,创建Main原理图页。3)放置-的端口,放置方块图的端口。以上,就是层次原理图页的设计。

qq_52761962的博客 4915

iOS在cell中使用倒计时的处理方法

需求: 在UITableViewCell中每条数据中显示该内容的倒计时, 并随时间进行倒数 想法: 1.在每个cell中添加NSTimer, 负责对cell的倒数                                                      出现的问题: cell有重用机制,每次重用时数据不好处理, 而且每个cell的倒数数不同, 需要在重用时对NSTime

GYMotgm的博客 1211

AutoSAR系列讲解(实践篇)12.1-Diagnostics简介

主要概括性的讲解了诊断协议UDS和AutoSAR的诊断架构

雪云飞星的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

Lea__DongYang的博客 1690

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

weixin_39849054的博客 294

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 启动页设置 iOS
下一篇: 计算存储 并清除
网上的虫
博客等级 码龄11年 8粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值