2012-03-08 2 views
0

На изображении вы можете увидеть экран, что мне нужно реализоватьлучший способ реализовать динамическую tableViewCell в прошивкой

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

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

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

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

ответ

0

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

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

Re: XIB/Programatic

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

Sticky Point: вы не используете File's Owner (Under Placeholders) для ссылки на ваш IBOutlets - вместо этого вы используете самую ячейку (Under Objects).

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

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

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

Crappy Highlighting of IBOutlet connecting

+0

Спасибо за подробный ответ! Я попробую с xib –

1

Оба XIB и программно в порядке.

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

+0

Хорошо, но как я могу съехать описание фильма этикетку, если название фильма этикетка становится больше (по высоте)? Нужно ли вычислять высоту метки названия, а затем смещать метку описания? –

+0

Да, вам придется динамически изменять размер и положение этих элементов. Это делается в 'cellForRowAtIndexPath' в той части, где вы настраиваете ячейку. – Mundi

+0

спасибо за ответ =) –

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