1.在storyboard的tableView中拖进cell,填写cell的Identifier属性,就相当于注册cell.拖到tableView里的cell只能这个tableView用,不同tableView里的cell,identifier可以相同

2.register(_ nib: UINib?
let cellNib1 = UINib.init(nibName: "advancedCell1", bundle: nil);
tableView.register(cellNib1, forCellReuseIdentifier: "advancedCell1");
3.register(_ cellClass: AnyClass?
3.1 在cell的实现文件中重写initWithStyle加载nib
-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle: style reuseIdentifier:reuseIdentifier];
if (self) {
NSArray *nibArray = [[NSBundle mainBundle]loadNibNamed:@"DataTableViewCell" owner:nil options:nil];
self = [nibArray lastObject];
}
return self;
}
3.1 在cell的实现文件中重写initWithStyle纯代码布局
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
{
[self setupView];
}
return self;
}
参考博客:
UITableView registerClass与registerNib
自定义Cell总结(注册Cell)(registerNib: 与 registerClass: 的区别)