UIView 中的自动替换子视图

Posted

技术标签:

【中文标题】UIView 中的自动替换子视图【英文标题】:Automatic displace subviews in UIView 【发布时间】:2012-09-12 11:44:23 【问题描述】:

我有 3 个子视图 subView1、subView2、subView3。

subView1 具有动态大小。 subView2 和 subView3 的大小是固定的。

如何使用标准的ios框架方法根据subView1自动置换subView2和subView3?

【问题讨论】:

所有子视图之间的距离相同。 【参考方案1】:

为 subView1 设置所需的大小后,获取它的 frame.origin.y 并为其添加一些偏移量并将 subView2 的 frame.origin.y 设置为它。之后添加框架的高度 + 相同的偏移量并将其用于 subView3。

例如

// after you've set your subView1's size
CGFloat offset = 20.0;
CGRect s1Frame = [subView1 frame];
CGRect s2Frame = [subView2 frame];
CGRect s3Frame = [subView3 frame];

s2Frame.origin.y = s1Frame.origin.y + s1Frame.size.height + offset;
[subView2 setFrame:s2Frame];

s3Frame.origin.y = s2Frame.origin.y + s2Frame.size.height + offset;
[subView3 setFrame:s3Frame];

【讨论】:

以上是关于UIView 中的自动替换子视图的主要内容,如果未能解决你的问题,请参考以下文章

根据子视图大小调整 XIB 中的 UIView 大小

如果在自动布局中删除子视图,则重新排列 UIView 子视图

创建一个基于 UIView 的子视图自动调整大小的视图

“隐藏”具有自动布局子视图的 UIView

使用自动调整子视图大小为 UIView 帧大小更改动画

UIView 不自动调整子视图