Многострочный UITableViewCell с использованием стиля UITableViewCellStyleValue2

Я пытаюсь выяснить, как реплицировать стиль UITableViewCellStyleValue2, чтобы текст детали мог быть несколько строк - как видно в ячейках "address" в приложении "Контакты". Как и приложение "Контакты", некоторые поля (например, название улицы) являются необязательными; поэтому он показал бы 3 строки вместо 4, если бы улица не была нулевой.

Я пропустил трюк или мне нужно создать пользовательскую ячейку в IB? Как обеспечить, чтобы текстовые и текстовые метки текста совпадали с другими ячейками UITableViewCellStyleValue2?

Спасибо за любые советы.

Ответы

Ответ 2

Мне кажется, что вам нужно создать пользовательский UITableCell. Единственный способ обеспечить текстовые строки - получить правильные значения ширины поля/текста, которые могут быть выполнены с помощью проб и ошибок или с помощью измерительного инструмента, такого как xScope.

Ответ 3

Создайте пользовательскую ячейку для вашей таблицы и поместите в нее UILabel и UITextView. Поместите метку и текстовое представление, чтобы они соответствовали их положениям x, y другим ячейкам, которые вы используете в этой таблице. Вы вставляете "\n" в текст текста, где бы вы ни находились. Вы изменяете размер текста в зависимости от количества строк в текстовом виде, используя что-то вроде:

CGRect frame = yourTextView.frame; frame.size.height = yourTextView.contentSize.height; yourTextView.frame = frame; return frame.size.height + 20.0; // Pad the cell height as necessary for your applicaion

Ответ 4

У меня также была проблема с тем, что textLabel и detailTextLabel имели другую позицию. Решение. Для detailTextLabel используйте ту же высоту, что и textLabel (например, 13)