在iOS中使用相对位置布局视图的最佳方法?

时间:2011-04-18 03:45:19

标签: objective-c ios user-interface layout view

我对iOS中的用户界面有疑问,特别是在iPad上。

我的应用程序显示搜索结果中的餐馆信息。并非所有字段都是必需的,因此某些字段为空。它们可以是电话号码,评级,菜单等。

基本上我想做的是以布局格式显示UILabelUIButton等视图,但我不想显示任何带空字符串的视图。所以视图之间不应该有空格。

我这样做的方法是,如果某个字段不为空,我会启动其视图,然后通过跟踪当前应显示的视图高度来显示先前显示的视图。

虽然这有效,但我相信它的工作方式似乎很乏味。是否有显示相对位置视图的最佳实践?

谢谢:)

2 个答案:

答案 0 :(得分:7)

我已经创建了一个库来解决这个问题: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 :(得分:1)

一种方法是使用UITableView并按照这个答案中的说法: Auto adjust the UITableViewCell height depend on its contents in Objective-C