在我的UITableView中,我有一些自定义单元格,然后是一个需要重复10次的自定义单元格,每个单元格中的UILabel值不同。一切都很好,直到我尝试多次重复使用我的上一个自定义单元格。会发生什么情况是最后一个单元格正确绘制,但前面的9显示为空白,单元格之间没有分割。
这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = nil;
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
switch (indexPath.row) {
case 0:
cell = nameCell;
break;
case 1:
cell = globalSettingsCell;
break;
case 2:
cell = queueTypeCell;
break;
case 3:
cell = starMinCell;
break;
case 4:
cell = lengthMaxCell;
break;
}
if (indexPath.row > 4) {
cell = genreCell;
genreLabel.text = [genres objectAtIndex:(indexPath.row - 5)];
}
return cell;
}
答案 0 :(得分:0)
您不能同时为多个indexPath使用一个单元格(流派单元格)。
答案 1 :(得分:0)
您只有一个标识符,但有一个不同的单元格?而且我认为你不知道如何正确地重复使用Cell。
尝试这样的事情......
static NSString *CellIdentifier_1 = @"Cell_1";
static NSString *CellIdentifier_2 = @"Cell_2";
//...
UITableViewCell *cell = nil;
switch (indexPath.row) {
case 0:
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier_1];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier_1] autorelease];
}
break;
case 1:
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier_2];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier_2] autorelease];
}
break;
}