Ответ 1
Еще один раунд поиска нашел это:
http://the-lost-beauty.blogspot.com/2009/11/multi-line-uitableviewcell-using.html
Быстро попробовал, и он работает - просто нужно немного установить размер шрифта.
Я пытаюсь выяснить, как реплицировать стиль UITableViewCellStyleValue2, чтобы текст детали мог быть несколько строк - как видно в ячейках "address" в приложении "Контакты". Как и приложение "Контакты", некоторые поля (например, название улицы) являются необязательными; поэтому он показал бы 3 строки вместо 4, если бы улица не была нулевой.
Я пропустил трюк или мне нужно создать пользовательскую ячейку в IB? Как обеспечить, чтобы текстовые и текстовые метки текста совпадали с другими ячейками UITableViewCellStyleValue2?
Спасибо за любые советы.
Еще один раунд поиска нашел это:
http://the-lost-beauty.blogspot.com/2009/11/multi-line-uitableviewcell-using.html
Быстро попробовал, и он работает - просто нужно немного установить размер шрифта.
Мне кажется, что вам нужно создать пользовательский UITableCell. Единственный способ обеспечить текстовые строки - получить правильные значения ширины поля/текста, которые могут быть выполнены с помощью проб и ошибок или с помощью измерительного инструмента, такого как xScope.
Создайте пользовательскую ячейку для вашей таблицы и поместите в нее 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
У меня также была проблема с тем, что textLabel
и detailTextLabel
имели другую позицию. Решение. Для detailTextLabel
используйте ту же высоту, что и textLabel (например, 13)