一、关于UITableView 复用cell两种方法:
非注册
-(id)dequeueReusableCellWithIdentifier:(NSString *)identifier;
如果没有复用cell,程序可能会返回nil, 所以创建完cell后必须要做判空处理,未获取到则重新创建。这种方法可以不用注册。
//尝试获得可以复用的单元格。但不一定获得到。得不到返回nil
UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:@“ft”];
//如果没有获得到
if(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ft"];
}
1
2
3
4
5
6
7
注册
(id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath;
获取复用的cell,如果没有复用的cell,将自动使用提供的class类创建新的cell并返回,后面不需要再进行判空。在此之前必须要注册cell。
[self.tableView registerClass:[MyTableViewCell class] forCellReuseIdentifier:@“ft”];
MyTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@“ft” forIndexPath:indexPath