使用自动布局调整视图大小

Posted

技术标签:

【中文标题】使用自动布局调整视图大小【英文标题】:Resizing views using auto layout 【发布时间】:2014-07-18 01:40:20 【问题描述】:

我有一个视图控制器,其中包含一个自定义视图,其下方有一个 UITableView。

当我在代码中更改自定义视图的高度时,我试图弄清楚如何调整表格视图的大小以填充剩余空间。我希望使用自动布局约束来完成这项工作!

除此之外,由于某种原因,当我什么也没做时,我无法以编程方式调整使用情节提要制作的自定义视图的高度。

自动布局既邪恶又神奇。请帮帮我!

【问题讨论】:

您是否使用 setFrame: 来调整自定义视图的大小?如果它有自动布局约束 setFrame: 不工作。 是的,我使用了 setFrame,那么如果在视图上设置了约束,setFrame 会被完全忽略吗?这是否意味着您需要为高度约束创建一个 IBOutlet 并这样做? 是的。您还可以在这里做一件事。检查这个。 ***.com/questions/13186908/… 哇,谢谢,我以前从未听说过该属性,所以我会尝试一下! 我仍然无法得到我想要的结果,自动布局有时并不酷。 【参考方案1】:

调整自动布局视图的大小。您必须修改约束的值。

我假设您已经有如下限制。 在视图控制器中制作 NSLayoutConstraint 的 IBOutlet:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *headerHeightConstraint;

将标题视图的 height 约束连接到它。 然后,您可以调整标题视图的高度:

headerHeightConstraint.constant = 100.0f;

【讨论】:

好的,我现在就试试。感谢您提供图片的麻烦,我很感激。 哇。 没有 认为可以为约束创建 IBOutlets。谢谢。

以上是关于使用自动布局调整视图大小的主要内容,如果未能解决你的问题,请参考以下文章

(自动布局)容器视图调整大小但子视图不

只想使用自动布局调整中间视图的大小

根据最大的子视图使用自动布局调整超级视图的大小

如何使用自动调整大小和自动布局并更改其默认行为? [关闭]

Xcode 5:不同屏幕大小的 iPhone 自动布局视图调整大小问题

调整视图大小的任何其他方法,除了自动布局