美文网首页SB CelliOS移动开发社区
创建一个单元格cell的一些小理解

创建一个单元格cell的一些小理解

作者: DXSmile | 来源:发表于2016-02-15 16:19 被阅读85次

    创建一个单元格cell ,从逻辑上来说,我们可以有三种方式:如下  (推荐使用第三种)

      //方式1 :原始方式方式1是每移除一个,就创建一个cell,会不停的创建,性能低,总有内存爆满的时候,会崩溃,所以这种方式不妥,如下:

    UITableViewCell*cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:nil];

    //方式2:如刚好一个页面有8个cell,一启动会创建8个,当滚动一点点的时候,第一个没有进缓存池,而第9个已经出来了,这个时候又多了一个cell,这种方式至少会创建9个,如果是ABAB型的,还会有第10个,也有点不妥,如下:

    UITableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:ID];

    if(cell ==nil) {

    cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:ID];

    }

    //方式3:这种方式是最好的,如,也是ABAB类型的,到缓存池里面找和创建cell是一步搞定,底层是直接就写好了的,但注意,这里需要在启动程序的时候注册一个cell,也就是在viewDidLoad里面,这种方式也是最好的,对于性能的优化是最恰当的,所以推荐用这种!!

    UITableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:ID forIndexPath:indexPath];

    //此时,当一个cell从屏幕滚出去以后,不会销毁,而是放到了"缓存池"中;

    这个方法需要先注册一个cell,如下:

    #pragma mark ----viewDidLoad设置数据源对象

    - (void)viewDidLoad {

    [superviewDidLoad];

    //注册一个cell

    [self.tableViewregisterClass:[UITableViewCellclass]forCellReuseIdentifier:ID];

    }

    ——>

    这里为方法3注册的一个cell,便于方式3调用;要用这种方法,必须要先注册一个cell 在viewDidload 里面注册,注册就是告诉系统,我们用的ID到底是什么类型的cell,

    <——

    相关文章

      网友评论

        本文标题:创建一个单元格cell的一些小理解

        本文链接:https://www.haomeiwen.com/subject/zzjpkttx.html