Хотелось бы, чтобы это было достаточным ответом на мою проблему:
К сожалению, либоЯ слишком туп, чтобы увидеть свое решение в этих комментариях, или они не решают мою проблему.
Я упрям, поскольку считаю, что должен иметь возможность отображать подробный текстовый ярлык без создания пользовательскогоUITableViewCell, все при создании моего интерфейса через раскадровку.Ячейка прототипа раскадровки по умолчанию не имеет опции для стиля.Кроме того, нигде в моем коде я не выделяю эту ячейку, кроме этой;таким образом, я предполагаю, что он изначально выделяется в раскадровке стилю по умолчанию, который не использует текстовые метки деталей.
Когда я использую следующий код для заполнения ячеек, мой detailTextLabel не отображается:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSLog(@"This is never called!");
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
// Configure the cell...
switch(indexPath.section) {
case 0: // boring cell
cell.textLabel.text = [NSString stringWithFormat:@"Default label"];
cell.textLabel.textAlignment = UITextAlignmentCenter;
break;
case 1: // loading cells based on contents of core data
{
// get some data from previously retrieved core data objects
NSManagedObject *rowObj = [myObjects objectAtIndex:[indexPath row]];
NSDate *someDate = (NSDate*)[rowObj valueForKey:@"timeStarted"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateStyle:NSDateFormatterMediumStyle];
NSString *stringFromDate = [formatter stringFromDate: someDate];
// we have the fields ready; populate the cell
NSLog(@"This prints a valid date:%@", stringFromDate);
// this, also, displays just fine
cell.textLabel.text = [NSString stringWithFormat:@"Default text"];
// this does not appear
cell.detailTextLabel.text = stringFromDate;
break;
}
default:
break;
}
return cell;
}
Я заранее прошу прощения, если об этом уже говорилось в другом месте, и у меня отсутствует функция search-fu, или если есть обсуждение UITableViewCells и раскадровок, связанных со стилями ячеек текстовых меток, но я не видел их в моемпоиски.
В частности, что мне нужно изменить в своем коде, чтобы установить стиль для использования метки подробного текста, при этом используя нестандартный прототип UITableViewCells и сохраняя мою раскадровку нетронутой?
И наконец, и это может быть совершенно не связано (пожалуйста, не обращайте внимания, если это так), если я сгенерирую много строк, чтобы прокрутить таблицу вниз, все мои строки выглядят нормально, за исключением нескольких (в зависимости от того, как быстро я прокручиваю), которые появляютсяиначе, чем остальные (выравнивание текста).То есть, насколько я понимаю, я вижу, что новые ячейки распределяются / инициализируются без тех же настроек по умолчанию, которые я указал в раскадровке.Обратите внимание, что приведенный ниже код initWithStyle по-прежнему никогда не вызывается.Если я правильно понимаю, что-то происходит за кулисами, создавая новые ячейки, и я хотел бы знать, где я могу установить предпочтения стиля.Но опять же, если это признак несвязанной проблемы, пожалуйста, проигнорируйте, и я могу опубликовать другой вопрос, если он не исчезнет.
Извините за стену текста.