2016-01-22 32 views
0

我想创建一个通用的uitableviewcell,我将通过重写一些方法来进行自定义。父和子之间的共享xib文件uitableviewcell

有我的父母的UITableViewCellIconTitleGenericTableViewCell

我设计我的手机在厦门国际银行文件: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重复

回答

2

让笔尖在它经常UIView与文件的所有者为您IconTitleGenericTableViewCellinitWithStyle:reuseIdentifier:负荷从笔尖的观点,并把它添加到单元格的内容视图。

然后使用registerClass:forCellWithReuseIdentifier:注册您的单元格。您注册的任何子类将在出列时作为正确的类出现,并将添加到它的内容视图中的视图添加到视图中。

+1

对不起,晚了评论。你的解决方案确实有效,但是通过这样做,你可以放松与tableview的交互。例如,我永远不会通过 - (void)setHighlighted:(BOOL)高亮显示动画:(BOOL)动画。 我必须禁用xib上的userInteraction,但我将无法与具有UIButton或UISwitch的uitableviewcell进行交互 – Pwyll28

0

做一个笔尖文件独立的UIView,做出FileOwner所有出口连接,并使用该函数加载你的细胞:

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

此[“super initWithNibName:@”YourXibName“bundle:nil]”是UITableViewCell的未知方法 – Pwyll28