лучший способ реализовать динамический tableViewCell в iOS - PullRequest
0 голосов
/ 08 марта 2012

На изображении вы видите экран, который мне нужно реализовать

http://cs301703.userapi.com/u20441799/154158276/z_aadbf840.jpg

Я запутался с динамическим размером ячейки таблицы, поскольку название и описание фильма могут быть различными. Есть ли что-то в iOS, например, LinarLayout в Android, где я могу разместить элементы, и размер макета будет изменен?

Лучше ли использовать пользовательский xib для ячейки TableView со всеми необходимыми представлениями (изображения, метки и т. Д.) Или программно добавлять представления в ячейку TableView?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 марта 2012

И XIB, и программно в порядке.

Чтобы настроить высоту вашей ячейки, рассчитайте необходимую высоту и верните ее в heightForRowAtIndexPath вашего контроллера табличного представления.Вам нужно будет вернуть правильную высоту для каждого ряда.

0 голосов
/ 08 марта 2012

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

Если у вас много ячеек в таблице, вы получите выигрыш в производительности от поддержания одинаковой высоты ячеек, а такжеесли вы повторно используете ячейки, то для вас будет лучше, если они однородны.

Re: XIB / Programatic

Подобные вещи в XIB могут быть довольно неприятными, но однаждывы преодолеваете следующую точку преткновения, это действительно лучше.

Заметка: вы не используете владельца файла (в разделе «Заполнители») для ссылки на ваши IBOutlets - вместо этого вы используете саму ячейку (в разделе объектов).

Вы также должны убедиться, что объект Cell связан с правильным классом (в Identity Inspector).

После того, как вы получили свою подклассную ячейку, используя IOBOutlets из пера, такая работа может бытьрадость.

Программно это можно сделать простым способом, просто добавив подпредставления к любой клетке, которую вы создаете.т.е.У вас не будет проблем, выделенных выше, НО в занятой ячейке вы получите большой код внутри cellForRowAtIndexPath: , что не совсем желательно.

Crappy Highlighting of IBOutlet connecting

...