2009-07-23 3 views
1

Примечание: я использую iPhone SDK 3.0 Final Версия для Leopard.Разработка iPhone - UITableViewCellStyleValue2

Мне нужно подготовить таблицу, аналогичную используемой приложением фотоальбома iPhone. Есть два новых стиля для UITableViewCell:

  1. UITableViewCellStyleValue1
  2. UITableViewCellStyleValue2

Я думал, что я могу использовать это вместо того, чтобы создать пользовательский класс клеток, но похоже, что они не работают должным образом. Я столкнулся с следующими проблемами: UITableViewCellStyleValue2:

  1. Мне не удалось показать изображение.
  2. Если я изменяю размер шрифта textLabel и detailTextLabel, значения не выровнены.

Вот пример кода:

// 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:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease]; 
    } 

    // Configure the cell. 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    cell.imageView.image = [UIImage imageNamed:@"Pointy.gif"]; 

    cell.textLabel.text = @"Label"; 
    cell.textLabel.textColor = [UIColor redColor]; 
    cell.textLabel.font = [UIFont systemFontOfSize:21]; 

    cell.detailTextLabel.text = @"(10)"; 
    cell.detailTextLabel.textColor = [UIColor grayColor]; 
    cell.detailTextLabel.font = [UIFont systemFontOfSize:17]; 

    return cell; 
} 

Этот кусок кода работы с UITableViewCellStyleDefault и UITableViewCellStyleSubtitle, чтобы показать изображения. UITableViewCellStyleValue2 поддерживает свойство изображения ячейки? Я вижу пустое место вместо области изображения (левый угол ячейки). Я здесь что-то не так?

В случае, если это не сработает, как я могу создать пользовательский класс ячеек со стилем, похожим на стиль UITableViewCellStyleValue2. Мне особенно интересно получить detailTextLabel влево, выровненном с textLabel.

спасибо в ожидании.

ответ

2

Новые встроенные стили макетов наборы полей с конфигурациями, которые совпадают с количеством системных макетов (например, ячеек в адресной книге).

Что касается вашего точного конкретны:

  1. UITableViewCellStyleValue2 не имеет изображения
  2. Встроенная команда стилей компоновки логики предположить метрики шрифта то, что они устанавливаются. Если вы измените их, поля не будут выстроены в линию.

Вы можете получить подробное описание того, что доступно для каждого из встроенных стилей в documentation. Если ни один из этих параметров не требует ваших потребностей, вам нужно подклассифицировать UITableViewCell, добавить свои собственные подзаголовки и разложить их в layoutSubviews. Apple имеет большое количество примеров того, как с TableViewSuite.

+0

Благодарим вас за ответ. Я знаком с TableViewSuit и работал с пользовательским TableViewCell. Результаты, которые я хочу достичь, похожи на UITableViewCellStyleValue2 с изображением. В примерах TableViewSuite не рассматривается ситуация с детализацией. Ярлык выровнен «слева» с основным ярлыком. например Приложение фотоальбома, где количество изображений в альбоме написано рядом с названием этого альбома ... »Сохраненные фотографии (102)« где »(102)« серый. – Mustafa

+1

Я не понимаю, в чем проблема.Если вы реализуете пользовательский подзаголовок, вы можете поместить любые подсмотры, которые хотите, где бы вы ни захотели. Добавьте ivar и свойство для чего-то с именем «leftAlignedImage» или аналогичным и установите его фрейм равным 0,0, cellheight, cellhieight) в layoutSubviews. –

+0

@Louis: размещение изображения и текста, а также подробный текст в определенном месте не является проблемой, поэтому проблема размещения их в рассчитанной позиции для каждой ячейки. Результаты, которые я ищу, похожи на приложение «Фотоальбом». Я опубликовал возможное решение с проблемой:) – Mustafa

Смежные вопросы