在父级和子级 uitableviewcell 之间共享 xib 文件



我想创建一个通用的uitableviewcell,我将通过覆盖一些方法来自定义它。

有我的父 UITableViewCellIconTitleGenericTableViewCell

我在xib文件中设计了我的单元格:IconTitleGenericTableViewCell.xib

现在我已经用这个子类子类子类化了我的父单元格:MyTitleCell

我想要的是MyTitleCell从它的父级实例化指定的xib文件。

我试过使用

UINib *nib = [UINib nibWithNibName:key bundle:bundle];
[tableView registerNib:nib forCellReuseIdentifier:identifier];

但是细胞返回

 MyTitleCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier forIndexPath:indexPath];

是一个 IconTitleGenericTableViewCell 而不是 MyTitleCell

我如何设法获得相同的视图和插座链接而没有任何 xib 重复

制作一个带有常规UIView的笔尖,文件所有者作为您的IconTitleGenericTableViewCellinitWithStyle:reuseIdentifier:从笔尖加载视图并将其添加到单元格的内容视图中。

然后使用 registerClass:forCellWithReuseIdentifier: 注册您的细胞。您注册的任何子类在取消排队时都将显示为正确的类,并将笔尖中的视图添加到其内容视图中。

使笔尖文件独立于UIView,与FileOwner建立所有插座连接,并使用该功能加载单元格:

- (instancetype) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { {
    return [super initWithNibName:@"YourXibName" bundle:nil]);
}

最新更新