2016-01-22 70 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