tabview 复用方法

第一种复用的方法:

//配置每条cell

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

static NSString *identifer = @"cellIdentifer";

//从池子中通过标识位获取

UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:identifer];

//取不到则创建

if (!cell) {

cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifer];

}


    return cell;

}



//第二种复用的方法,在外部注册带有标识的cell,然后在里面用:

[_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"标识"];


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

    //从池子中通过标识位获取

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"标识"];


    return cell;

}



第三种复用的方法


如果Main.storyboard里面创建了TableView,那么就可以选择Main.storyboard里面TableViewControll里面的Cell,然后更改Cell的标识(也就是相当于在故事板里面注册了cell),这样就可以找到带有标识的Cell,下图




如果我们需要在cell里面添加内容,都是放在contentview里面,而cell.textLable.text 其实也是放在了ContentView里面的,只是为了方便访问,把textLable放在了外面。


如果在故事板里面父之一个cell,然后修改标识为cell2的话,就是注册了两个cell,那么就可以任意选择两个标识的cell了;

例如:我想显示偶数行显示标识cell2的cell的话,看下图




如果用代码来表示注册了两个标识的cell的话,就应该这样写:

    [_tableView registerClass:[UITableViewCell class]forCellReuseIdentifier:@"cell"];

    [_tableView registerClass:[UITableViewCell class]forCellReuseIdentifier:@"cell2"];


或者是:

static NSString *identifer = @"cell";

static NSString *identifer2 = @"cell2";

//从池子中通过标识位获取

UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:identifer];

//取不到则创建

if (!cell) {

cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifer];

}

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifer];

//取不到则创建

if (!cell) {

cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifer2];

    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容