以编程方式访问已卸载的约束?

时间:2016-07-03 02:34:07

标签: swift autolayout storyboard nslayoutconstraint iboutlet

如果我在故事板中创建约束并且选中了已安装属性:

enter image description here

...我可以通过阅读视图中的约束来访问它:

myView.constraints

这将返回此级别安装的所有约束。

如果我取消选中情节提要中的已安装属性,则[NSLayoutConstraint] myView.constraints数组中的约束不再存在。有没有办法在我的故事板中访问这些未安装的约束而不为它们创建IBOutlets?

例如,一个解决方案循环遍历视图层次结构中的每个视图并找到它就足够了,但我似乎无法找到一种方法。

此外,如果有myView.archivedConstraintsmyView.uninstalledConstraints或类似内容,那也是一个很好的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为你有三种方法可以实现这一目标:

  1. 创建IBOutlet以访问该约束。
  2. 访问它们循环所有添加的约束(不推荐)
  3. 以编程方式添加该约束。
  4. 但对于他们所有人来说,据我所知,你需要安装这个约束才能使它在应用程序中活跃" /"可见" /"什么时候运行"。

    也许这篇文章可以帮助您activateConstraints: and deactivateConstraints: not persisting after rotation for constraints created in IB