Как изменить положение UILabels и UIImageViews, размеры которых меняются динамически? - PullRequest
1 голос
/ 02 октября 2010

У меня есть UITableView со многими строками, которые нажимают DetailViewController в зависимости от выбора.Этот подробный вид содержит UIImageView и несколько UILabels (скажем, описание книги, комментарии к книге и т. Д.).В viewWillAppear я назначаю соответствующий контент этим розеткам, чтобы отобразить контент для выбранной строки.Моя проблема в том, что текст может состоять из одного предложения или пары абзацев.Итак, если у меня есть один выход для описания книги и один для комментариев к книге, как я должен правильно расположить эти компоненты, чтобы их горизонтальное расстояние всегда было одинаковым?Я думал о создании UIWebView и загрузке туда динамически сгенерированного HTML, но должен быть более чистый способ, верно ??

Вот что-то визуальное, если это поможет:)

------------------------------
|  Description               |
|  [multiple lines go here]  |
|                            |
|  [Image]                   |
|                            |
|  Comments                  |
|  [multiple lines go here]  |
------------------------------

Ответы [ 2 ]

3 голосов
/ 02 октября 2010

Когда вы создаете макет вашего UITableView, если вы используете UILabels для описания и комментариев, вы можете определить размер с помощью чего-то вроде этого:Вы можете правильно расположить UIImageView, используя CGRect и т. д., и т. д. Затем вычислите высоту строки UITableView с помощью чего-то вроде этого:

1 голос
/ 02 октября 2010

Создайте собственный класс представления и выполните макет в -layoutSubviews, используя -sizeThatFits: и -sizeToFit.

Код макета не принадлежит контроллеру представления.

...