我正在为我父亲的业务编写一个应用程序,它涉及列表,但是,我已经看到它似乎重新组织了列表,即使我不想要它。例如,第1部分应该说一件事,当我向下滚动时,其他部分的内容放在第1部分的单元格中,这也适用于其他部分。 这是所有的表格代码,如果有帮助的话。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == ENGINEER_ID) {
return 3;
} else if (section == FIREMAN_ID) {
return 3;
} else if (section == CONDUCTOR_ID) {
return 3;
} else if (section == TRAINMASTER_ID) {
return 3;
} else {
return 0;
}
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
if ([indexPath section] == ENGINEER_ID) {
cell.textLabel.text = @"Engineer";
} else if ([indexPath section] == FIREMAN_ID) {
cell.textLabel.text = @"Fireman";
} else if ([indexPath section] == CONDUCTOR_ID) {
cell.textLabel.text = @"Conductor";
} else if ([indexPath section] == TRAINMASTER_ID) {
cell.textLabel.text = @"Trainmaster";
}
}
// Configure the cell.
return cell;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if (section == ENGINEER_ID) {
return @"Master Engineer II";
} else if (section == FIREMAN_ID) {
return @"Fireman";
} else if (section == CONDUCTOR_ID) {
return @"Conductor";
} else if (section == TRAINMASTER_ID) {
return @"Trainmaster";
} else {
return @"What.";
}
}
答案 0 :(得分:1)
您需要将文本分配移出条件。
在前3个单元格的alloc / init'd之后,你不一定会得到更多的单元格。
仅在创建新单元格时才分配cell.textLabel.text。
逻辑应该是:
static NSString * CellIdentifier = @“Cell”;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
if ([indexPath section] == ENGINEER_ID) {
cell.textLabel.text = @"Engineer";
} else if ([indexPath section] == FIREMAN_ID) {
cell.textLabel.text = @"Fireman";
} else if ([indexPath section] == CONDUCTOR_ID) {
cell.textLabel.text = @"Conductor";
} else if ([indexPath section] == TRAINMASTER_ID) {
cell.textLabel.text = @"Trainmaster";
}
当然,在您厌倦了编写级联if语句之后,您可以使用switch([indexPath section])