多个UITableViewCell子类使用相同的xib?

时间:2016-02-01 09:04:40

标签: ios objective-c uitableview xib

如何在多个xib子类中共享一个UITableViewCell

它们都具有相同的视图界面,​​所以我不想多次复制相同的xib只是为了更改单元格类。

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.tableView registerNib:[UINib nibWithNibName:@"BaseCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"BaseCell"];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    BaseCell *baseCell = [tableView dequeueReusableCellWithIdentifier:@"BaseCell" forIndexPath:indexPath];

    ...

我需要的是我ChildCell的一个实例 - 它是BaseCell的子类。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用组合而不是继承。保持您的BaseCell类与其在nib中的单元格之间的1-1关系,为您创建的实现对象添加属性,并在将其出列后添加到单元格对象。

答案 1 :(得分:1)

现在无法对多个单元格使用相同的xib

但是你可以分开xib的一部分,这是所有细胞都会使用的。

在每个单元格中,您将为此类子视图设置子视图,现在您可以将此视图重新用于所有单元格。

您可以在此示例中看到我的图片:

第一个细胞:

enter image description here

第二小组: enter image description here

并查看两个单元格的使用:

enter image description here

现在您不需要重复的xib,可以重用这部分UI。