同じ tableView で 2 種類のセルをどのようにエレガントにコーディングしますか?
明らかに、私はこのようにすることができます:
NSDictionary *cellInfo = [_userInformation objectAtIndex:indexPath.row];
NSString *cellType = [cellInfo objectForKey:@"type"];
if ([cellType isEqualToString:kProfileImage]) {
ProfileImageCell *cell = [tableView dequeueReusableCellWithIdentifier:@"profileImageCell"];
cell.descriptionLabel.text = [cellInfo objectForKey:@"cellLabelText"];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
return cell;
}
else {
AccountCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AccountCell"];
cell.descriptionLabel.text = [cellInfo objectForKey:@"cellLabelText"];
cell.textField.placeholder = [cellInfo objectForKey:@"textFieldPlaceholder"];
cell.textField.delegate = self;
cell.textField.clearButtonMode = UITextFieldViewModeWhileEditing;
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
return cell;
}
return nil;
しかし、私の先生はいつも、何かを二度書いてはいけないと言います。どちらの場合も同じです。ご覧のとおり、どちらの場合も 3 行は同じです。それらをifの外に移動し、if本体の各ケースに固有の行のみを残したいと思います。