您的位置:首页 > 产品设计 > UI/UE

三种自定义UITableViewCell的方法

2016-05-10 19:20 453 查看

一、子类化带xib的UITableViewCell

//1.tableView注册
UINib *nib = [UINib nibWithNibName:@"CustomTableViewCell" bundle:nil];
[tableView registerNib:nib forCellReuseIdentifier:@"CustomTableViewCell"];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//不带NSIndexPath*,完全复用
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell"];
//带NSIndexPath*,复用每一个NSIndexPath*的cell
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell" forIndexPath:indexPath];
}
//2.tableView没注册,xib中必须注明identifier一致,否则不会复用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellID = @"CustomTableViewCell";
CustomCell * cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil) {
//cell必须通过xib文件创建
cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] lastObject];
}
return cell;
}
@end


二、子类化不带xib的UITableViewCell

//1.tableView注册

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//不带NSIndexPath*,完全复用
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
//带NSIndexPath*,复用每一个NSIndexPath*的cell
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

return cell;
}
//2.tableView没注册
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellID = @"CustomTableViewCell";
//创建cell,用不带NSIndexPath*参数的方法
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil) {
//用自定义初始化的方法创建
cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
}
return cell;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: