十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
说到 倒计时 ,首先想到的就是 定时器(NSTimer) 。刚在cocoaChina上看了一篇帖子:乍一看,觉得挺好,但是仔细想想,又感觉不太合理。
创新互联公司于2013年创立,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设、成都外贸网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元东风做网站,已为上家服务,为东风各地企业和个人服务,联系电话:18982081108
总有人认为,若是每一个cell都创建一个timer,那么 数据过多 的话,会导致性能开销过大。有这种想法的,我真想问问你是跟谁学的,cell的最大特点,就是 复用 ,每一个tableView创建cell个数是不会超过 屏幕上显示 的数量的。因此,我个人认为,若非特殊情况,可以不用考虑timer引起的性能问题,下图是同时开启14个倒计时timer的性能消耗比例:
扩展知识
timer的释放问题一直是导致内存泄漏的金牌杀手,给大家说一个极其简单的自动释放的方法,就拿这一次的倒计时cell举例,在cell里重写这个方法:
一般人,我不告诉他,有图有真相:
觉得好,请给个star,谢谢!
创建一个计时器就行了。
例:
验证60秒
int timeTick;
NSTimer *timer;
timeTick = 61;//60秒倒计时
timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES];
_but.enabled = NO;
-(void)timeFireMethod
{
timeTick--;
if(timeTick==0){
[timer invalidate];
_but.enabled = YES;
[_but setTitle:@"获取验证码" forState:UIControlStateNormal];
}else
{
NSString *str = [NSString stringWithFormat:@"%d秒",timeTick];
[_but setTitle:str forState:UIControlStateNormal];
}
}
上面代码就是实现了一个倒计时60秒的功能。
近段的项目有个毫秒倒计时的需求,在网上找了好久,都没有找到明确的Demo或者毫秒倒计时的知识点,所以就借鉴了一些前辈的思路,和自己琢磨,然后成功把毫秒倒计时弄了出来。目前我知道的有两种做法,如下:
首先创建好定时器,如果不加入runloop中就会引发滑动表格时,倒计时停止的现象:
然后设置倒计时的时长,因为是列表的原因,所以就随机了20条以毫秒为单位的数据
最后取表格可见cell,并记录好已经pass的时间,定时刷新cell的倒计时内容,此处有个注意的地方就是时间转换的问题,如果用1毫秒来倒计时的话个人感觉太耗性能了,所以改为10毫秒,毫秒倒计时位数正好也是两位,刚好满足需求。
这个跟第一个方法类似,但是它的定时器在cell里边创建,也就是说在不计算重用cell的情况,一个页面上有可能会同时存在N个定时器,比较耗性能,表示电脑在运行倒计时Demo的时候,风扇转的N快。
为了确保数据源也同步,传入数据源数组,然后每减少0.01s就替换一次数组中对应减少的值。
倒计时刷新的方法
然后在cell中定时器开启的用法也跟方法1一样,同样是添加到runloop中
差不多就这些了, github上面有Demo ,希望能帮到你,如有更好的想法,欢迎留言...
文 明美无限
这不就在8月19日,苹果向iOS 15/iPad OS 15测试版用户推送Beta 6公测版,该版本对部分App细节体验进行优化,整体运行流畅度更高,异常发热的问题得到缓解。
首先据了解,虽然iOS 15 Beta 6没有加入新功能,但是有网友反映,iOS 15 Beta 6的发热有了比较大的改善。目前,处于该版本系统的iPhone或者iPad设备发热控制更好,响应速度更快。更重要的是,iOS 15 Beta 6的后台动画有了非常明显的改善,不会像之前的测试版本一样掉帧了。
还有除了更好的操作体验,iOS 15 Beta 6还对信号不佳的情况进行了优化。
另外值得注意的是,iOS 15 Beta 6在细节体验上有不少改进。比如Safari的地址搜索栏移到了屏幕下方,更符合部分单手操作用户的使用逻辑。为了照顾其他用户的使用习惯,苹果还允许将地址栏恢复到屏幕顶部。SharePlay功能被移除了,据悉,苹果会在后续重新加入该功能。
苹果虽然暂时禁用了这一功能,但为了不打断开发者的开发进度,苹果提供了一套开发配置文件。它可通过Group Activities API来成功创建及接收GroupSessions。苹果为开发者提供的服务还是比较周全的,所以众多开发者都喜欢优先在iOS等平台开发应用,苹果用户往往能早一步用上新功能。
再有,iOS 15的第五个测试版删除了在特定时间在 Apple Watch 上自动设置表盘的自动化,但在第六个测试版中,该选项再次在快捷方式应用程序中可用。
然后呢,在 iOS 15 的功能预览中,苹果表示可以将身份证或驾驶证添加到钱包应用程序中,但是 iOS 15 所有测试版都不支持该功能,不过此功能好像与我们没有多大关系,因为它只限于美国用户使用。
接下来对于隐私报告,苹果声称有必要更新到iOS 15,并指出,用户可以了解到7天之内应用程序的访问记录,例如:应用程序访问你的位置、照片、相机、麦克风和联系人等等。
不过此功能,可能要等到正式版更新之后才可以使用。
当然了,除了以上这些新功能外,iOS 15 Beta 6已经修复了iMessage无法发送图片的问题,但一些旧Bug依旧还是未修复,比如“天气”应用中的空气质量地图无法正常显示,极少部分企业级App还是会有闪退现象。
此外机型升级建议方面,鉴于iOS 15大部分实用新功能都仅支持A12处理器以上设备。因此,明美无限建议iPhone XR及Xs以上机型可以考虑升级至iOS 15系统,iPhone X及以下机型,明美无限就不建议升级了~
顺便一提的是,本次更新版本号为 19A5325f,已经已经更新 iOS 15 的用户,可以直接在软件更新中升级到最新测试版。也想升级到 iOS 15 测试版尝鲜的小伙伴,需要下载 iOS 15 测试版描述文件,可以在明美无限公众号后台发送「15」获取安装链接。
除此之外呢,今天明美无限还要值得一提的是,据外媒爆料,苹果 Xcode 开发工具中显示可用的 iOS 系统版本时,出现了 iOS 14.8 版本,这是目前还没有发布的更新。
iOS 从来没有进行过".8"的版本进行过更新。 iOS 11 在 iOS 11.4 上停止,iOS 12 在 iOS 12.5 上停止,iOS 13 在 iOS 13.7 上停止,而这次 iOS 14.8版本也算是苹果 历史 上的首次。
值得注意的是,今年6月的WWDC 2021全球开发者大会上,苹果推出了 iOS 15预览版,并表示“当iOS 15发布时,用户可以选择立即更新到最新版本,以获得最新的功能和最完整的安全更新。与此同时,用户也可以继续使用iOS 14,在准备好升级到下个主要版本之前,仍然可以获得重要的安全更新。”
不过鉴于苹果目前的精力应该都在iOS 15 正式版的制作上,iOS 14.8的更新应该不会带来比较大的新变化,目前你的系统停留在什么版本呢?
最后,明美无限以上提到的几个新功能,可能要等到iOS 15正式版发布之后才可用,不过有消息表明,苹果可能会进一步优化新功能,所有新功能或将在 iOS 15.1 或 iOS 15.2 更新中逐步推出,预计iOS 15正式版软件将在下个月与 iPhone 13同步推送,具体时间应该是9月14日,到时候我们再见证iOS 15的新功能吧。
1、在设备上面选择时间应用程序点击进入。
2、在时间程序里面选择计时器的选项,然后就是设置计时器的时间。
3、设置好时间之后,就点击计时开始。时间就开始倒计时。
4、计时结束时,启动就是设置铃声提醒。