在一个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-tableview cell 倒计时.zip
tableview cell 倒计时
iOS开发之UITableViewCell可暂停倒计时
前言 最近开发中,用到了UITableViewCell倒计时功能,这里将这部分功能分离出来,供大家参考。 1.原理 考虑到APP性能,这里只创建一个定时器,定时刷新当前正在显示的UITableViewCell,使用Model记录剩余倒计时时间和当前UITableViewCell是否暂停。 2.核心代码 创建定时器 考虑到方便和不需要销毁,这里定时器使用GCD—>GCD定时器封装OC&...
tableViewCell上的倒计时
类似抢购类APP的cell倒计时
iOS 在每一个cell上添加一个定时器的方案
1 首先创建一个数组,用来创建所有的定时器的时间 - (NSMutableArray *)totalLastTime { if (!_totalLastTime) { _totalLastTime = [NSMutableArray array]; } return _totalLastTime; } 2 当从网络请求过来时间之后,循环遍历,行数和时间作...
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中显示倒
ENU坐标系实战:5分钟搞定无人机导航中的站心坐标转换
本文针对无人机导航中GPS坐标与视觉感知不匹配的定位漂移问题,提供了基于ENU坐标系的实战解决方案。通过Python代码演示了如何快速、精准地实现地心地固坐标与站心坐标之间的转换,并详细解释了转换原理、精度对比及工程优化技巧,帮助开发者从根本上解决局部相对定位不准的难题。
iOS:在cell中使用倒计时的最佳方法
一、简单介绍 在UITableViewCell中每条数据中显示该内容的倒计时, 并随时间进行倒数,这是很多电商app最常见的活动推销功能模块,自然想到用的就是计时器了。 二、基本想法 想法1:在每个cell中添加NSTimer, 负责对cell的倒数 ...
读取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
【SLAM】SVO2.0编译运行和论文代码解读
SVO2是我遇到的最难编译的代码了,可能公开版本不能放太鲁棒的代码吧,搞了快一个星期,终于跑起来了。
ios 如何在cell中去掉_iOS 在cell中使用倒计时的处理方法(新)
一.前言之前的文章iOS 在cell中使用倒计时的处理方法得到大量的支持, 在这先感谢大家的支持. 但是也收到不少人的回复表示不会用, 需要一一解答, 由于之前写的时候没有使用Markdown编辑, 所以现在没法更新之前的文章, 重新写一份清晰的文章需求: 每条Cell中显示倒计时, 并随时间进行倒数语言: Objective-C & Swift系统: iOSGithub地址: OY...
STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能
单片机实现LWIP的调试
cell上添加倒计时,以及时差问题的解决
原址http://www.cnblogs.com/zhangmaliang/p/5102518.html 最近项目中用到了tableView的多个cell倒计时系统问题,本觉得很简单的一个事,一做发现还没这么简单,就此记录。 下面方法模拟网络请求返回数据。 按照常规思路,根据网络请求返回remainTime,封装模型,存到数组中,再在表格代理方法中赋值给ce...
PCB过孔电流承载解析:完整指南与数据参考
深入解析PCB过孔的电流承载能力,结合实际应用场景提供可靠设计参考。涵盖影响载流的关键因素,并整理实用的pcb过孔与电流对照一览表,帮助工程师优化布局与布线。
博图HMI多语言文本列表一键生成攻略:从Excel模板到TIA Portal的完整流程
本文详细介绍了如何利用Excel模板和TIA Portal API实现博图HMI多语言文本列表的一键生成。通过标准化Excel模板设计、解析TIA Portal的XML结构,并结合C#代码实现自动化导入,大幅提升多语言项目的开发效率。特别适用于需要支持多语言版本的自动化设备HMI界面开发。
Swift - UITableViewCell倒计时重用解决方案
Swift - UITableViewCell倒计时重用解决方案 效果 源码 https://github.com/YouXianMing/Swift-Animations // // CountDownTimerController.swift // Swift-Animations // // Created by YouXianMing on 1...
AD24-层次原理图的设计
4)在原理图关联对话框中双击需要放置方块图的子图,即激活方块图的放置,单击母图的空白处进行放置。3)设计-Create Sheet From Sheet,进入原理图关联对话框。4)放置-添加图纸入口,放置方块图的内部I/O端口并进行名称更改。2)放置-页面符,放置页面符,并执行Table完成属性设置。5)执行Ctrl+W,端口和内部I/O端口对应连接。1)创建一个工程并完成子图的每页原理图的设计。1)新建项目,创建Main原理图页。3)放置-的端口,放置方块图的端口。以上,就是层次原理图页的设计。
iOS在cell中使用倒计时的处理方法
需求: 在UITableViewCell中每条数据中显示该内容的倒计时, 并随时间进行倒数 想法: 1.在每个cell中添加NSTimer, 负责对cell的倒数 出现的问题: cell有重用机制,每次重用时数据不好处理, 而且每个cell的倒数数不同, 需要在重用时对NSTime
AutoSAR系列讲解(实践篇)12.1-Diagnostics简介
主要概括性的讲解了诊断协议UDS和AutoSAR的诊断架构
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
iOS关于在UITableView中,实现多个cell中不同的倒计时实现
在一个UITableView中,有多条数据,可能每一个cell对应的剩余时间不一样,所以,如何实现不同的cell中倒计时的实现?之前,考虑到需要单独为每一个cell中开启一个定时器,来监控对应cell的数据更新,但是很快发现这种方法行不通,因为不知道具体有多少条数据,这些数据都是动态从服务器获取的。所以,想到在请求最新的数据时,开启一个定时器,根据该定时器,分别对所有的需要进行倒计时显示的cell
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
ios 如何在cell中去掉_iOS在cell中使用倒计时的处理方法
需求:在UITableViewCell中每条数据中显示该内容的倒计时, 并随时间进行倒数想法: 1.在每个cell中添加NSTimer,负责对cell的倒数出现的问题: cell有重用机制,每次重用时数据不好处理,而且每个cell的倒数数不同, 需要在重用时对NSTimer进行废除并重新开启, 如果显示的cell数量过多,需要创建很多的NSTimer对象2. 在模型中添加NSTimer, 负责对数...
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
425



被折叠的 条评论
为什么被折叠?



