iOS

tabview 复用方法

2018-05-30  本文已影响19人  说不出口的喵

第一种复用的方法:

//配置每条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];

    }

上一篇下一篇

猜你喜欢

热点阅读