嗨,我是IOS開發新手,我創建了一個使用在nib中創建的自定義單元格的UITableView
。下面是我的代碼從我的ViewController
加載單元格,但如果我上下滾動應用程序崩潰3次,因爲我不認爲我正在重新使用單元格。我搜索了一下,但我發現的很多代碼/解決方案似乎已經過時了。我的代碼下面的任何幫助非常感謝!使用NIB重複使用自定義單元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CustomCell";
CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:@"cellIdentifier"];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (CustomCell *) currentObject;
break;
}
}
}
cell.TITLE.text = [NSString stringWithFormat:@"\"%@\"", [TITLE objectAtIndex:indexPath.row]];
cell.desc.text = [desc objectAtIndex:indexPath.row];
cell.votes.text = [votes objectAtIndex:indexPath.row];
return cell;
}
太簡單了,謝謝! – GFlam 2012-08-09 21:17:13
我使用與上面建議的代碼相同的代碼,但是如果我在nib文件中設置了單元格標識符,那麼標籤上的控件會隨着上下滾動而消失。但是,如果我跳過在nib中設置標識符,那麼Table View滾動速度非常慢,但數據正常。任何想法可能是什麼問題? – Anshul 2013-04-16 11:14:17
首先,如果您跳過設置標識符,tableview將滾動速度較慢,因爲您不重用單元格,並且每個單元格和它的子視圖都會再次創建。我可以猜測你的問題是你沒有在cellForRowAtIndexPath方法中正確配置你的單元格。確保所有更新單元數據的代碼都在if(cell == nil)語句之外。因爲如果使用標識符,單元格將被重用,並且if(cell == nil)語句中的代碼不會被調用。 – Eyal 2013-04-19 09:47:01