当前位置:  开发笔记 > IOS > 正文

iOS何时删除非活动约束

如何解决《iOS何时删除非活动约束》经验,为你挑选了1个好方法。

我注意到在某些情况下,我在Swift中的一个约束上设置isActive = false后,当我稍后尝试访问它时它是nil,但情况并非总是如此.在一种情况下,我有两个视图控制器,并且在viewWillAppear中的约束上都设置isActive为false,但是在一个视图中,约束稍后可用,我可以设置isActive = true而在另一个视图中它是nil.

什么会导致这种行为?我能够通过将优先级设置为1或900来绕过它,但它仍然留下了背景中真正发生的事情的问题.



1> Sulthan..:

isActive不是一个非常好的财产名称.约束实际上未停用,它将从视图层次结构中删除.

如果视图具有对约束的唯一强引用,则将释放约束,并且您将无法再次激活它.

这意味着如果您希望将约束保留在内存中,则必须强烈引用它,例如:

@IBOutlet var myConstraint: NSLayoutConstraint!

@IBOutlet weak var myConstraint: NSLayoutConstraint?

如果你有一个强大的参考,nil除非你nil自己设置参考,否则参考将永远不会被设置.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有