当我构建和分析时,我被告知单元格永远不会获得值......从我的逻辑来看,这似乎是错误的,但随后应用程序在尝试加载表格时崩溃了。那么……为什么要来?
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *Cell1Identifier = @"Cell1";
static NSString *Cell2Identifier = @"Cell2";
static NSString *Cell3Identifier = @"Cell3";
UITableViewCell *cell;
if ([indexPath section] == 0) {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Cell1Identifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2
reuseIdentifier:Cell1Identifier] autorelease];
}
}
else if ([indexPath section] == 1) {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Cell3Identifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:Cell3Identifier] autorelease];
}
}
else {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Cell2Identifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:Cell2Identifier] autorelease];
}
}
// Configure the cell...
[self configureCell:cell
atIndexPath:indexPath];
return cell;
}
最佳答案
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *Cell1Identifier = @"Cell1";
static NSString *Cell2Identifier = @"Cell2";
static NSString *Cell3Identifier = @"Cell3";
NSString *identityString = @"";
switch ([indexPath section]) {
case 0: {
identityString = Cell1Identifier;
break;
}
case 1: {
identityString = Cell3Identifier;
break;
}
case 2: {
identityString = Cell2Identifier;
break;
}
default:
break;
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identityString];
if ([indexPath section] == 0) {
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2
reuseIdentifier:Cell1Identifier] autorelease];
}
}
else if ([indexPath section] == 1) {
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:Cell3Identifier] autorelease];
}
}
else {
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:Cell2Identifier] autorelease];
}
}
// Configure the cell...
[self configureCell:cell
atIndexPath:indexPath];
return cell;
}
关于cocoa-touch - 桌面 View :cellforrowatindexpath with multiple cell types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900551/