Objective c 以编程方式添加的UI项彼此相邻

Objective c 以编程方式添加的UI项彼此相邻,objective-c,xcode,uiview,Objective C,Xcode,Uiview,有一个UIScrollView,我想通过编程将子视图放入其中。没关系,但如何自动将子视图彼此相邻放置? 提前谢谢 子视图的位置由其frame属性决定。因此,您需要设置它们的帧,以便它们相邻排列 如果它们的大小都一样,你可以用一些简单的数学和CGRectMake()。如果它们有不同的大小,可以使用CGRectDivide()将大矩形分解为小矩形CGRectInset()也很有用,以防它们之间需要一些填充。你不能。UIKit中的视图层次结构与大多数UI框架中的视图层次结构一样,使用显式布局 您的评论

有一个UIScrollView,我想通过编程将子视图放入其中。没关系,但如何自动将子视图彼此相邻放置?
提前谢谢

子视图的位置由其
frame
属性决定。因此,您需要设置它们的帧,以便它们相邻排列


如果它们的大小都一样,你可以用一些简单的数学和
CGRectMake()
。如果它们有不同的大小,可以使用
CGRectDivide()
将大矩形分解为小矩形
CGRectInset()
也很有用,以防它们之间需要一些填充。

你不能。UIKit中的视图层次结构与大多数UI框架中的视图层次结构一样,使用显式布局

您的评论询问类似于浮动的HTML;HTML/CSS使用的框模型是为了实现与UIKit完全不同的目标(流动文档布局),因此框架中没有真正的类比

UIViews确实支持通过autoresizing mask属性在父视图的调整大小/帧更改时自动重新布局(您可以说子视图是否应该调整大小、如何调整以及应该“固定”到哪里),但我认为这不是您所要求的


如果您愿意,您可以构建一组方法,可能作为UIView上的一个类别,允许您添加子视图,这些子视图的框架原点会根据现有子视图自动调整。

谢谢您的回答!我知道框架的方式,但是有什么解决方案可以自动化它吗?就像在HTML div float:left中一样。@haxpanel,你应该在问题中说你已经知道frame,并且正在寻找一些自动化过程。好的,谢谢。我将制作一个包装器来自动管理子视图。