2010-09-25 64 views
1

伙计们,我是iOS的新手。 我需要创建动态布局,因为GUI将根据数据生成。 我查了UIView的引用,看来标准的方式来添加子视图是这样的:像Java for iOS中的布局管理器一样吗?

CGRect rect = CGRectMake(0, 0, width, height); 
UILabel *label = [[UILabel alloc] initWithFrame: rect]; 
[someView addSubView: label]; 

但是,也许我不能肯定的是,宽度和高度。在Java中,容器使用布局管理器根据一些规则自动处理宽度和高度。在iOS中,我可以在Java中使用类似布局管理器的东西吗?

谢谢。 任何线索都可以。

回答

1

您可以在iOS中执行此操作,但它与Java布局不是一对一的。了解什么是可能的,在Interface Builder中使用Size Inspector。任何在那里完成的事情,例如允许物品水平增长或与顶部保持相同的距离,都可以通过编程完成。如果需要进一步定制,可以覆盖视图或控制器中的事件挂钩,例如UIView的-layoutSubviews方法。

+0

感谢彼得,我会看看有什么我可以做-layoutSubviews。 – icespace 2010-09-25 14:28:29

0

的iOS 9提供UIStackView类这在本质上是一个布局管理器:

的UIStackView类提供用于布置 的观点在任一列或一行的集合的简化的界面。堆叠视图让你 利用自动布局的能力,创建一个可以 动态适应设备的方向,屏幕尺寸,并在可用空间的任何 改变用户界面。堆栈视图管理layoutSubviews属性中所有视图的布局。这些视图是 ,它们沿着堆栈视图的轴排列,这取决于它们在 arrangeSubviews阵列中的顺序。确切的布局取决于视图的轴,分布,对齐,间距和其他属性。

UIStackView

需要注意的是,如果你支持的iOS 8这仍然是目前非常实际是不适用的。

iOS version statistics