cell的重用机制

重用机制

简单的说 意思 一行一行 的cell 都是在复用的, 滑动 tableview 的时候,刚离开视图的 cell 会被放到复用池 中,等下一个 cell需要 显示时,会先看复用池中有没有 cell 如果有的时候 ,就从复用池中拿出来cell ,没有的话就重新创建cell.

废话不多说直接上代码:

//

//  ViewController.m

//  tableView

//

//  Created by WBapple on 15/12/1.

//  Copyright © 2015年 apple . All rights reserved.

//

 

#import "ViewController.h"

 

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

@property(nonatomic,strong)UITableView *tableView;

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    _tableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStyleGrouped];

    _tableView.backgroundColor = [UIColor redColor];

    _tableView.rowHeight = 40;

    _tableView.delegate = self;

    _tableView.dataSource = self;

    [self.view addSubview:_tableView];

    

 

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return 4;

 

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return 4;

}

 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *cellId = @"cell";

    UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];

    if(cell == nil)

    {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellId];

    }

    cell.textLabel.text = [NSString stringWithFormat:@"%ld",(long)indexPath.section];

    //设置每个cell的内容

    if (indexPath.section == 0) {

        if (indexPath.row ==0) {

            cell.textLabel.text = @"设为默认地址:";

            

            //创建一个switch并添加

            UISwitch *abcd = [[UISwitch alloc]initWithFrame:CGRectMake(265, 6, 0, 0)];

            //改变switch的位置

            //                abcd = [[UISwitch alloc]initWithFrame:CGRectMakeF(265, 6, 0, 0)];

            //改变switch的状态

            abcd.on = YES;

            //添加

            [cell.contentView addSubview:abcd];

            

            

            

            

            

        }

        if (indexPath.row == 1) {

            cell.textLabel.text = @"收件姓名:";

            //设置lable颜色

            cell.textLabel.textColor = [UIColor redColor];

            

        }

        if (indexPath.row == 2) {

            cell.textLabel.text = @"手机号码:";

        }

    }else {

        if (indexPath.row ==0) {

            cell.textLabel.text = @"设为默认地址:";

        }

        if (indexPath.row == 1) {

            cell.textLabel.text = @"收件姓名:";

        }

        if (indexPath.row == 2) {

            cell.textLabel.text = @"手机号码:";

        }

    }

    

    

    return cell;

    

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

@end

 

posted @ 2015-12-02 21:10  王彬iOS  阅读(227)  评论(0编辑  收藏  举报