美文网首页
UITableViewCell重用注意

UITableViewCell重用注意

作者: 王小宾 | 来源:发表于2016-06-27 16:05 被阅读50次

    第一种方式:

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self.tableView registerNib:[UINib nibWithNibName:@"TableViewCell" bundle:nil] forCellReuseIdentifier:@"cell"];
    }
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
       return 10;
    }
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //    TableViewCell * cell = [TableViewCell cellWithTableView:tableView];
        TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
        NSLog(@"%@",cell);
        cell.label.text = [NSString stringWithFormat:@"%zd",indexPath.row];
        return cell;
    }
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        return 100;
    }
    

    第二种方式:

    - (void)viewDidLoad {
        [super viewDidLoad];
    }
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
       return 10;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
        if (cell == nil) {
            cell = [TableViewCell cellWithTableView:tableView];
        }
        NSLog(@"%@",cell);
        cell.label.text = [NSString stringWithFormat:@"%zd",indexPath.row];
        return cell;
    }
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        return 100;
    }
    
    //TableViewCell
    + (instancetype)cellWithTableView:(UITableView *)tableView {
        return [[NSBundle mainBundle]loadNibNamed:@"TableViewCell" owner:self options:nil].firstObject;;
    }
    

    第三种方式

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self.tableView registerNib:[UINib nibWithNibName:@"TableViewCell" bundle:nil] forCellReuseIdentifier:@"cell"];
    }
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
       return 10;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        TableViewCell * cell = [TableViewCell cellWithTableView:tableView];
        NSLog(@"%@",cell);
        cell.label.text = [NSString stringWithFormat:@"%zd",indexPath.row];
        return cell;
    }
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        return 100;
    }
    + (instancetype)cellWithTableView:(UITableView *)tableView {
        TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
        return cell;
    }
    

    相关文章

      网友评论

          本文标题:UITableViewCell重用注意

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