Ios 使用同一TableViewCell原型的多个自定义UITableViewCell

Ios 使用同一TableViewCell原型的多个自定义UITableViewCell,ios,uitableview,Ios,Uitableview,我想看看在iOS7中有哪些选项可以做到这一点。我有一个TableViewCell原型,标识符为TableViewCell\u RightDetailID,位于UITableViewController中。我还有另外两个自定义的tableviewcell类希望使用这个原型 有什么办法吗?不确定这是否可能 @interface TableViewCellA : UITableViewCell @interface TableViewCellB : UITableViewCell 我认为这样做应该有

我想看看在iOS7中有哪些选项可以做到这一点。我有一个TableViewCell原型,标识符为
TableViewCell\u RightDetailID
,位于
UITableViewController
中。我还有另外两个自定义的tableviewcell类希望使用这个原型

有什么办法吗?不确定这是否可能

@interface TableViewCellA : UITableViewCell
@interface TableViewCellB : UITableViewCell

我认为这样做应该有效:

TableViewController.m

#import "TVC.h"
#import "TableViewCellA.h"
#import "TableViewCellB.h"

@implementation TVC

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 2;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row == 0)
    {
        TableViewCellA *cell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell_RightDetailID"];
        // title, detaillabel etc
        return cell;

    }
    else
    {
        TableViewCellB *cell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell_RightDetailID"];
        // TO DO
        return cell;
    }
}

@end

由于单元的类是在故事板的原型中设置的,因此除非在故事板中复制原型(并使用不同的重用标识符),否则不可能对其进行更改


这实际上可能是在代码中进行布局并通过
[UITableView registerClass:forCellReuseIdentifier:

注册所有三个类的一个参数,但这行不通。即使您将
单元格
声明为类型
TableViewCellA
(或B),实例化单元格的实际类由情节提要确定。好的,我不确定是否必须这样做,但您是对的。为什么不创建两个具有不同标识符和不同类的可重用单元呢。这不应该是个问题……这基本上是我的答案。在这种情况下,这似乎是良性的,因为细胞有一个非常简单的布局。如果您有多个具有复杂布局的变体,这可能会成为一个问题。