UITableViewCell在复用时,第一次reloadDat

2018-05-21  本文已影响0人  新生的光明

UITableViewCell如何复用

1.最原始的写法

static NSString *cellName = @"cellNameId";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
    if (!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellName];
    }

2.也可以先注册cell,之后,就不用创建了

[mTabl registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cellNameId"];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellNameId" forIndexPath:indexPath];

这里为了测试具体创建了几个cell,采用第一种方式.


image.png

红色框为tabl的位置

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
    if (!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellName];
//在cell被创建时,输出一下
       NSLog(@"+++++++++++++++++++++++++++%zd***%@",indexPath.row,cell);
    }

如此设置之后,屏幕上最大可展示的cell为5个

1,设定cell的个数为0

  不会创建cell

2,设定cell的个数为3

image.png

cell会被创建3个,每一个cell地址都不一样,创建3次
此时,屏幕上并没有展示全最大

2,设定cell的个数为8


image.png

cell会被创建8个,每一个cell地址都不一样,创建8次
此时,屏幕上已展示全最多的cell

2,设定cell的个数为10

image.png

cell会被创建10个,每一个cell地址都不一样,创建10次

2,设定cell的个数为100


image.png

cell会被创建10个,每一个cell地址都不一样,创建10次

因此,cell存在复用时,tabl并不是仅仅创建屏幕上能展示的cell的最大数.

当cell的个数大于9时,最少创建10个cell,最多创建屏幕能展示下的最大数
当cell的个数小于9时,有几个创建几个.
上一篇下一篇

猜你喜欢

热点阅读