你真的可以将约束链接到完全不同的视图控制器吗?

时间:2017-11-11 14:47:20

标签: ios autolayout nslayoutconstraint

想象一下,你的屏幕上有许多视图控制器(带有容器视图或其他)。

(如果您愿意,可以考虑一个包含许多大型复杂区域的iPad应用程序,每个区域都有自己的子容器视图,用于列表,控件等。)

偶数 - 可能是你的VC被隐藏,被屏幕滑落,甚至只是在缓存中而没有呈现,或者你可能有多个屏幕“叠在一起”,所以有些甚至不是可见。

所以说你有一个观点v

      var v: UIView

在其中一个视图控制器中,视图w

      var w: UIView

完全不同的视图控制器中。

出于某种原因,您希望这两个项目在屏幕上具有相同的宽度

事实上。你能将NSLayoutConstraint一个接一个吗?

(显然你不能在故事板上;这没什么大不了的。你会在布局时用代码来做。)

这可能吗?

当其中一个VC消失时,是否会引起问题?

(事实上,约束会导致硬引用吗?)

这是什么交易?

1 个答案:

答案 0 :(得分:3)

是的,它会起作用,只要您的视图都是同一视图层次结构的一部分。它们是childViewControllers并不重要,一切都与普通子视图一样。

您只能向已添加到同一视图的视图添加约束,如果您尝试向尚未添加的视图添加约束,则会产生异常。

如果删除任何视图,其关联的约束也将被删除。