[英]Custom tableview cell's xib not showing
所以我有一個自定義的uitableviewcell,並且在cellForRowAtIndexPath方法中有類似以下的代碼
defaultCell = [self.listView dequeueReusableCellWithIdentifier:DefaultCellIdentifier];
if(defaultCell){
defaultCell = [[DefaultCell alloc]init];
}
傳遞了if並分配和初始化了默認單元格。 但是,該單元格顯示為空白(xib文件不存在)。 我正在用這樣的tableview注冊筆尖-
UINib* defaultNib = [UINib nibWithNibName:@"DefaultCell" bundle:nil];
[self.listView registerNib:defaultNib forCellReuseIdentifier:DefaultCellIdentifier];
那么,為什么在表格單元中而不是在xib文件中看到空白視圖? 我認為這是因為我沒有分配帶有xib的單元格。
這是怎么回事?
更新1-代碼中的更正這是在今天我學到的知識的cellForRowAtIndexPath
方法中顯示自定義單元格的正確方法:
您無需檢查某個單元是否已出隊,因為如果該方法無法使一個單元出隊,則該方法將從筆尖創建一個新單元。 -@Abizern,
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
//Set the label's data properties that you may have assuming you have a datasource.
cell.customLabelICreated.text = [myStringsDataSourceArray objectAtIndexPath:index.row];
您首先要為表視圖單元格注冊筆尖,如下所示:
[self.tableView registerNib:[UINib nibWithNibName:@"nib name" bundle:nil] forCellReuseIdentifier:DefaultCellIdentifier];
在cellForRowAtIndexPath
。 您不需要顯式分配單元格。
相反,您可以做這樣的事情
defaultCell = [self.listView dequeueReusableCellWithIdentifier:DefaultCellIdentifier];
[defaultCell configureCell];//In configure cell method set any images or labels u want.
return defaultCell
希望這可以幫助..
此調用有誤,原因有兩個:
if(defaultCell){
defaultCell = [[DefaultCell alloc]init];
}
首先,它應該是if(!defaultCell)
其次,如果您已經為它注冊了一個筆尖,甚至不需要檢查一個單元是否已出隊。 在這種情況下, dequeueReusableCellWithIdentifier
將始終返回一個單元格。 您需要做的就是配置它。
因此,實際上,您甚至根本不需要這小段代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.