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];
}