Лучший способ макетировать представления с относительными позициями в iOS? - PullRequest
3 голосов
/ 18 апреля 2011

У меня есть вопрос по поводу пользовательского интерфейса в iOS, особенно на iPad.

Мое приложение отображает информацию о ресторане из результатов поиска.Не все поля являются обязательными, поэтому некоторые поля пусты.Это могут быть номера телефонов, рейтинги, меню и т. Д.

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

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

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

Спасибо:)

Ответы [ 2 ]

7 голосов
/ 04 мая 2012

Я создал библиотеку для решения этой проблемы: CSLinearLayoutView

Вы используете это так:

// create the linear layout view
CSLinearLayoutView *linearLayoutView = [[[CSLinearLayoutView alloc] initWithFrame:self.view.bounds] autorelease];
linearLayoutView.orientation = CSLinearLayoutViewOrientationVertical;
[self.view addSubview:linearLayoutView];

// create a layout item for the view you want to display and add it to the layout view
CSLinearLayoutItem *item = [CSLinearLayoutItem layoutItemForView:someView];
item.padding = CSLinearLayoutMakePadding(5.0, 10.0, 5.0, 10.0);
item.horizontalAlignment = CSLinearLayoutItemHorizontalAlignmentCenter;
item.fillMode = CSLinearLayoutItemFillModeNormal;
[linearLayoutView addItem:item];

// add more items
1 голос
/ 18 апреля 2011

Способ сделать это - использовать UITableView и следовать тому, что сказано в этом ответе: Автоматическая настройка высоты UITableViewCell зависит от его содержимого в Objective-C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...