cell的重用

//当一个cell进入到视野范围内就会调用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
////    1.创建cell
//    UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
//    NSLog(@"%ld ,%ld,%p",indexPath.section,indexPath.row,cell);
////    2.设置数据
//    HeroModel *hero = self.heros[indexPath.row];
////     2.1设置名称
//    cell.textLabel.text = hero.name;
////     2.2设置图片
//
//    cell.imageView.image = [UIImage imageNamed: hero.icon];
////     2.3设置子标题
//    cell.detailTextLabel.text = hero.intro;
////     2.4设置指示器
//    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
//     return cell;

//    1.带着一个重用的标示符去缓存池中取重用cell
//     为了保证局部变量只开辟一次存储空间,我们用 static修饰局部变量
    static NSString *ID = @"hero";
   UITableViewCell *cell =  [tableView dequeueReusableCellWithIdentifier:ID];
//    2. 如果没有重用的cell,我们创建一个 cell
    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];

    }
      NSLog(@"%ld ,%ld,%p",indexPath.section,indexPath.row,cell);
//    3.给cell设置数据覆盖原来的数据
    HeroModel *hero = self.heros[indexPath.row];
     //      3.1设置名称
     cell.textLabel.text = hero.name;
    ////     3.2设置图片
    //
     cell.imageView.image = [UIImage imageNamed: hero.icon];
    ////     3.3设置子标题
    cell.detailTextLabel.text = hero.intro;
    ////     3.4设置指示器
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    return cell;

}
时间: 2024-11-07 00:42:26

cell的重用的相关文章

iOS中cell的重用

如果有cell的重用 那么就会跳过if语句中的创建过程 当拖动页面,最上面的cell消失,出现新的cell的时候 就会在缓存区存放刚才消失的cell,而属性会重新设置,为什么? 因为缓存区中存放的cell的属性是消失的cell的,他的属性如果不符合新的cell就需要重新分配属性, 一有新的cell出现,就会替换旧的位置,数量总保持在界面上显示的cell数量,不会增加也不会减少,这样就减轻了内存的压力

Cell的重用原理

iOS设备的内存有限,如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象的话,那将会耗尽iOS设备的内存.要解决该问题,需要重用UITableViewCell对象 重用原理:当滚动列表时,部分UITableViewCell会移出窗口,UITableView会将窗口外的UITableViewCell放入一个对象池中,等待重用.当UITableView要求dataSource返回UITableViewCell时,dataSource会先查看这个对象池,

学习IOS开发UI篇--UITableView/数据模型嵌套/UITableViewCell/Cell的重用

1.UITableView ================================================== UITableView有两种格式:group和plain 2.UITableView如何展示数据 ================================================== UITableView需要一个数据源(dataSource)来显示数据 凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的

21-30(NSTimer定时器 Cell的重用原理 代理的使用场合 UITableViewCell结构 监听键盘的通知)

21.NSTimer定时器 22.tableView的基本用法 23.tableView的常用属性 24.Cell的重用原理: 25.UITableViewCell结构 26.使用xib封装一个view的步骤 27.代理的使用场合 28.使用delegate的步骤 29.通过代码自定义cell步骤 30.监听键盘的通知 { 细节决定成败, 这句话讲的太对了, 所以我们要注意每一个细节!今天还好注意了, 没犯错!嘿嘿! 今天心情特别好, 心情好! 啥都好! 给大家来个笑, 工作的同时,不要忘记笑容

iOS-cell的重用机制

对于像我们这样的初学者来说,cell重用机制是很难理解的内容,所以我们不一定非得理解,会用就行. cell的重用机制:当我们使用tableView时,系统只会创建屏幕中显示的cell的个数+1,当cell滑出可视范围时,会将此cell放出重用池,当有新的cell滑进可视范围时,先到重用池里去找,找不到就创建,找得到就直接用,所以会用串(有时候不会串<cell的个数小于3>) 防止用串的方法:1.设置标签2.不用重用池,直接创建3.拿出来用之前,清空原内容 一.设置标签(这是最常用的) cell

解决UITableView上的cell的重用

1.通过为每个cell指定不同的重用标识符(reuseIdentifier)来解决 //        static NSString *rankCellIndefier = @"rankCell";        NSString *cellMark = [NSString stringWithFormat:@"%ld", indexPath.row];                NewsCustomTableViewCell *cell = [tableVi

ios之清除cell缓存,解决cell的重用问题。

原文:http://blog.csdn.net/chaoyuan899/article/details/13291637 tableView表格中的cell有重用机制,这是一个很好的东西,可以避免开辟很多的空间内存.但是有时候我们不想让它重用cell,,可以用以下的代码解决. 将这个代码放在: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

cell的重用机制

重用机制 简单的说 意思 一行一行 的cell 都是在复用的, 滑动 tableview 的时候,刚离开视图的 cell 会被放到复用池 中,等下一个 cell需要 显示时,会先看复用池中有没有 cell 如果有的时候 ,就从复用池中拿出来cell ,没有的话就重新创建cell. 废话不多说直接上代码: // //  ViewController.m //  tableView // //  Created by WBapple on 15/12/1. //  Copyright © 2015年

【原】 从cellForRowAtIndexPath 看cell的重用机制

今天突然发现一个问题,由于对UITableViewCell 的重用机制不是很了解,让我纠结很久: 用过reloadData时候,会调用cellForRowAtIndexPath方法,但是请看以下2种cellForRowAtIndexPath 的写法: 写法A: -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    static NSStri