2015-05-29 202 views
2

stroryboard我有UIViewController其中包含UITableView並在其中我創建了一個動態UITableViewCell並給它一個標識符。UITableView如何在沒有註冊類的情況下工作:forCellReuseIdentifier:

UIViewController in cellforrowatindexpath方法我簡單地做了[tableView dequeueReusableCellWithIdentifier:CellIdentifier]

我做了不是使用registerClass:forCellReuseIdentifier:但我的應用程序運行完美。

如何沒有registerClass:forCellReuseIdentifier:應用程序正在工作,單元格完美地出隊?

回答

4

該標識符的單元定義在故事板中指定,在編譯過程中將其轉換爲NIB,並在取消存檔期間將單元NIB註冊到表視圖。

1
registerClass:forCellReuseIdentifier: 

當您使用自定義類中的tableview你的這種方法只使用,目前已確定它會自動使用默認的UITableViewCell類的原型細胞,你必須訪問單元格屬性帶有標記值,但如果是自定義類,則爲CustomCell.h中的標籤/文字視圖/圖像視圖製作屬性或插口,並且您必須在加載ViewController時註冊具有唯一標識符名稱的類,以便tableview在運行時可以理解應根據故事板中使用的單元格標識符加載哪個單元類。

0

討論

出隊的任何細胞之前,調用此方法或 的registerClass:forCellReuseIdentifier:方法來告訴表視圖 如何創建新的細胞。如果指定類型的單元格當前不在重用隊列中,則表格視圖使用提供的 信息自動創建新的單元格對象。

如果您先前使用相同的重複使用 標識符註冊了一個類或nib文件,則您在nib參數中指定的nib將替換舊的 條目。如果要從指定的重用標識符註銷注嘴nib ,您可以指定nil作爲nib。

如果對UITableviewCell ContentView使用單獨的UITableViewCell類或xib文件,其中UIElements通過類文件進行訪問。在Storyboard中,UITableViewDataSource通過其標識符獲取單元格。

UINib *sectionHeaderNib = [UINib nibWithNibName:@"Header" bundle:nil]; 
[self.tableView registerNib:sectionHeaderNib forHeaderFooterViewReuseIdentifier:SectionHeaderViewIdentifier]; 
// [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"]; // register your your UITableView Class 

檢查LazyTableImages項目 和UITableView Class Reference

相關問題