我对iOS中的用户界面有疑问,特别是在iPad上。
我的应用程序显示搜索结果中的餐馆信息。并非所有字段都是必需的,因此某些字段为空。它们可以是电话号码,评级,菜单等。
基本上我想做的是以布局格式显示UILabel
和UIButton
等视图,但我不想显示任何带空字符串的视图。所以视图之间不应该有空格。
我这样做的方法是,如果某个字段不为空,我会启动其视图,然后通过跟踪当前应显示的视图高度来显示先前显示的视图。
虽然这有效,但我相信它的工作方式似乎很乏味。是否有显示相对位置视图的最佳实践?
谢谢:)
答案 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