作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我注意到,在某些情况下,在我对 Swift 中的约束设置 isActive = false 之后,当我稍后尝试访问它时,它是 nil,但情况并非总是如此。在一种情况下,我有两个 View Controller ,并且都在 viewWillAppear 中的约束上将 isActive 设置为 false,但在一个 View 中,约束稍后可用,我可以设置 isActive = true,而在另一个 View 中,它为 nil。
什么会导致这种行为?我可以通过将优先级设置为 1 或 900 来绕过它,但它仍然留下了后台真正发生的问题。
最佳答案
isActive
不是一个很好的属性名称。约束实际上并未停用,而是从 View 层次结构中删除。
如果 View 只有对约束的强引用,则约束将被释放,您将无法再次激活它。
这意味着如果你想让约束保留在内存中,你必须强引用它,例如:
@IBOutlet var myConstraint: NSLayoutConstraint!
不是
@IBOutlet weak var myConstraint: NSLayoutConstraint?
如果您保留强引用,除非您自己将其设置为 nil
,否则该引用将永远不会设置为 nil
。
关于ios - iOS什么时候移除不活跃的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41596538/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!