cell的循环利用

作者: 挖掘机 | 来源:发表于2016-03-03 19:59 被阅读118次

    cell的循环利用

    方式一

    
    #import "ViewController.h"
    
    @interface ViewController ()<UITableViewDataSource>
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        UITableView *tableView=[[UITableView alloc]init];
        tableView.frame=self.view.bounds;
        
        tableView.rowHeight=70;
        tableView.dataSource=self;
        [self.view addSubview:tableView];
    }
    
    #pragma mark-<UITableViewDataSource>
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return 50;
        
    }
    
    // Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier:
    // Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls)
    
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString  *ID=@"a";
      UITableViewCell *cell=  [tableView dequeueReusableCellWithIdentifier:ID];
        
        if(cell==nil)
        {
            cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
        }
        
        cell.textLabel.text=[NSString stringWithFormat:@"testdata--%zd",indexPath.row];
        
        
        return cell;
    }
    
    
    
    @end
    0w2bbg bms
    
    

    tableView的性能优化-cell的循环利用方式2

    -定义一个全局变量

    NSString *ID=@"hero";
    
    

    -注册某个表示对应的cell类型

    
    - (void)viewDidLoad {
        [super viewDidLoad];
        [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:ID];
        
    }
    

    在数据方法中找到cell

    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
        
        XMGHero *hero = self.heroes[indexPath.row];
        
        cell.textLabel.text = hero.name;
        cell.imageView.image = [UIImage imageNamed:hero.icon];
        cell.detailTextLabel.text = hero.intro;
        
        return cell;
    }
    
    
    

    相关文章

      网友评论

        本文标题:cell的循环利用

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