У меня есть таблица, в которую я хотел бы смешать несколько пользовательских и стандартных ячеек.
Мне не очень удобно с пользовательскими ячейками.
Для этого я написал этот код, я думаю, он не оптимален:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.dataList count] + 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier;
UITableViewCell *cell;
if (indexPath.row+1 == [tableView numberOfRowsInSection:0]) {
CellIdentifier = @"Cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
}
else {
CellIdentifier = @"ChooseSounds_cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
UIViewController *c = [[UIViewController alloc] initWithNibName:CellIdentifier bundle:nil];
cell = (ChooseSoundsOneCell*)c.view;
[c release];
}
[((ChooseSoundsOneCell*)cell).playSoundBtn addTarget:self action:@selector(playSound:event:) forControlEvents:UIControlEventTouchUpInside];
}
return cell;
}
Это смесь кода по умолчанию из источника defaut TableViewController и источника, который я нашел здесь для использования пользовательской ячейки. Между ними есть небольшая разница, но поскольку я не совсем понимаю, что сделано, я разделил два блока. Я использую стандартную ячейку только для последней строки.
Я мог бы использовать собственную ячейку для, но я не люблю писать код или использовать xibs, если уже существуют инструменты для выполнения того, что я хочу.
Итак, вопрос в том, что будет хорошим кодом для этого?