2015-06-28 55 views
0

我想了解[tableView dequeueReusableCellWithIdentifier:CellIdentifier]如何工作。這是我的情況:子類UITableViewCell&[tableView dequeueReusableCellWithIdentifier:CellIdentifier]

我已經在IB中設計了我的UITableViewCell子類,現在我正在嘗試在我的子類中對單元格的子元素進行樣式設置。不幸的是,方法[tableView dequeueReusableCellWithIdentifier:CellIdentifier]似乎沒有在我的單元格子類中調用任何方法。用方法我的意思是initWithCoder,initWithFrameinit

這是我的實際代碼:

static NSString *BasicCellIdentifier = @"BasicCell"; 
GSFeedBasicTableViewCell *basicCell = [tableView dequeueReusableCellWithIdentifier:BasicCellIdentifier]; 

我的細胞顯示出來,但我會定製單元格進一步我的子類,以避免在我TableController樣式代碼。任何提示都非常感謝。

回答

2
  1. 當使用XIB,必須先註冊

    [self.tableView registerNib:[UINib nibWithNibName:@"IBNameofthiscell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"youridentifier"]; 
    

然後可以使用dequeueReusableCellWithIdentifier

  • 如果使用故事板,不忘記將此單元格的類別 設置爲您的自定義類別,並將標識符設置爲您的標識符。
  • enter image description here

    enter image description here

    當你出列單元格3.Then使用此功能

    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

    +0

    我使用的故事板,所以沒有需要註冊一個筆尖,對嗎? – SaifDeen

    +0

    查看更新回答 – Leo

    +0

    我已經完成了全部功能:/ – SaifDeen

    1

    ,你的子類的initWithCoder:方法被調用。所以你可以覆蓋它來實現自定義行爲。您也可以執行您的自定義方法是awakeFromNib方法。

    如果您完全使用代碼設計單元格,則將調用子類的initWithStyle:reuseIdentifier:方法而不是initWithCoder: