更改 AutoLayout 约束的连接点?

Posted

技术标签:

【中文标题】更改 AutoLayout 约束的连接点?【英文标题】:Changing the connecting point of an AutoLayout constraint? 【发布时间】:2017-12-14 18:19:02 【问题描述】:

我的应用程序中有以下设置。有一个页脚栏,上面有许多按钮,上面有一个UIImageView,当前所有边缘的约束设置为 10,10,10,10。我在下面添加了一张图片来显示约束。

现在我想做的是,当单击页脚栏上的按钮时,页脚栏和UIImageView 之间会出现一个新的“子栏”。我的问题是如何调整约束以使底部锚连接到新的子栏而不是页脚。从某种意义上说,它推动了UIImageView 为新酒吧让路?

我不想让新栏越过UIImageVIew,而是想用动画将它向上推。

【问题讨论】:

【参考方案1】:

在 imageview 和页脚之间创建该栏并正确布局,然后首先隐藏其高度 constarint = 0,然后将 darg 这个 constarint 控制为 IBOutlet 并且当您要显示时将其常量更改为 100并调用:

[self.view layoutIfNeed];

如果你想要动画,请将其放入 UIView 动画中。

【讨论】:

很抱歉应该说会有多个不同类型的条,所以我将以编程方式添加它们。 好的,按照我说的在故事板中制作中间视图,并根据需要创建任意数量的条,并将它们添加为从上到下正确挂钩的子视图 我实际上已经按原样接受了您的答案,并且添加了一个“包装器”视图并将其设置为 0。我只是将内容添加/更改到该视图中并按照您所说的那样调整约束。 希望对您有所帮助。 . .

以上是关于更改 AutoLayout 约束的连接点?的主要内容,如果未能解决你的问题,请参考以下文章

更改Autolayout Anchor约束

WWDC2018 之 高性能 Auto Layout

AutoLayout常量更改不动画

iOS 在xib或者storyboard中添加AutoLayout后,在代码中修改AutoLayout约束条件

AutoLayout 约束动画从错误的点缩放

在代码中设置 IBOutlet 的 Auto Layout 约束