簡體   English   中英

自定義tableview單元格的xib未顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM