我創建了我自己的CustomTableView
和CustomCell
。該小區在xib
,以及初始化時的tableView,這樣我對其進行註冊:UITableViewCell的初始化在哪裏?
[self registerNib:[UINib nibWithNibName:@"CustomCell" bundle:nil]
forCellReuseIdentifier:kCustomCellIdentifier];
如果我不這樣做,我將無法界定什麼ReuseIdentifier
應該「點」這個班。這是我的cellForRow
:
-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = [self dequeueReusableCellWithIdentifier:
kCustomCellIdentifier forIndexPath:indexPath];
if(!cell)
{
cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell"
owner:self options:nil] objectAtIndex:0];
cell.delegate = self;
[cell initialSetup]; //Other stuff
}
else
[cell resetCell];
//And other awesome stuff
return cell;
}
This'works'。當我推出我的應用程序時,我自己的自定義單元格正在顯示。 但是,事實證明,細胞從未從[self dequeue..
返回nil
。因此,if語句if(!cell)
從來就不是真的。我在這個陳述中還有一些額外的設置,我想要執行,但是我不知道現在第一次單元的初始化位置在哪裏。如果我刪除registerNib
,那麼這個說法是真實的,但是對於所有單元來說都是如此,並且沒有一個將會出列。
我大概可以解決這個問題,並將我的initialSetup
(和其他東西)放在CustomCell類中的-(id)initWithCoder..
-方法中,但我想知道我的單元格現在正在初始化的位置。爲什麼我的細胞在cellForRowAtIndexPath
之前存在?
是否使用'storyboard'幫助? – Akhilrajtr
@Akhilrajtr是的。 – Sti
然後'if(!cell)'不會是真的,因爲'dequeueReusableCellWithIdentifier'返回一個單元格。在'CustomCell'中使用'awakeFromNib'方法 – Akhilrajtr