iOS使用tableView展示倒计时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS使用tableView展示倒计时相关的知识,希望对你有一定的参考价值。

参考技术A

说到 倒计时 ,首先想到的就是 定时器(NSTimer) 。刚在cocoaChina上看了一篇帖子:乍一看,觉得挺好,但是仔细想想,又感觉不太合理。

总有人认为,若是每一个cell都创建一个timer,那么 数据过多 的话,会导致性能开销过大。有这种想法的,我真想问问你是跟谁学的,cell的最大特点,就是 复用 ,每一个tableView创建cell个数是不会超过 屏幕上显示 的数量的。因此,我个人认为,若非特殊情况,可以不用考虑timer引起的性能问题,下图是同时开启14个倒计时timer的性能消耗比例:

扩展知识
timer的释放问题一直是导致内存泄漏的金牌杀手,给大家说一个极其简单的自动释放的方法,就拿这一次的倒计时cell举例,在cell里重写这个方法:

一般人,我不告诉他,有图有真相:

觉得好,请给个star,谢谢!

IOS开发:用tableView控件展示数据

用tableView控件展示数据,必须要实现三个方法。下面我就对这些方法进行简单的说明

前景设置:我已经把文件名存到了一个数组里,然后把这个数组里的信息展示到tableView控件上..

我这里的实现较为简单,大家可以去看看视频,学习些多组比较复杂点的情况

方法一:告诉控件分为几组(在有的app栏中,看到每几行就隔开,这几行就为一组),我没分组,所以返回1

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return  1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //存了信息的数组,返回存储文件名称的数组长度
    return [[self getFileList]count];
}

方法二:告诉控件一组有几行,section参数表示第几组,如果只有1组,那么section参数为0;

方法三:告诉控件每行显示什么内容

 1 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
 2 {
 3     UITableViewCell  *cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
 4  //右侧的按钮样式
 5     cell.accessoryType=UITableViewCellAccessoryDetailButton;
 6    //获取存了文件信息的数组然后遍历赋值到cell文本中
 7    NSMutableArray *ss=[self getFileList];
 8 //我只有1组,那么section参数为0,此处是为了把数组里的信息循环存到cell的行中
 9     for(int i=0;i<[tableView numberOfRowsInSection:0];i++)
10     {
11      //   indexPath.section==0
12     //控制每行的
13       if( indexPath.row==i)
14         cell.textLabel.text=[ss objectAtIndex:i];
15     }
16     return cell;   }

以上是关于iOS使用tableView展示倒计时的主要内容,如果未能解决你的问题,请参考以下文章

Tableview Swift 中的多个计时器

回顾Google IO 2016 -Keynote图解

Vue页面上使用多个倒计时展示效果-实现案例

如何为每次用户滚动时更新的每个 tableview 单元格添加一个计时器?

前端倒计时工具

ESP32 + HaaS Python UI Lite 组件 打造倒计时面板