gpt4 book ai didi

autolayout - 如何以编程方式卸载 UIView

转载 作者:行者123 更新时间:2023-12-04 02:19:51 27 4
gpt4 key购买 nike

在 Interface builder 中,size classes 的强大功能让您可以安装或卸载约束。在代码中,您可以通过切换 active 属性来做类似的事情。

Interface Builder 还允许您安装或卸载 View 。但是,我希望能够以编程方式执行此操作。 UIView 似乎没有 active 属性。有什么办法可以以编程方式卸载 View 吗?我正在寻找可以简单地切换 bool 属性并且 View 及其约束进入休眠状态并且 View 不再可见并且其约束不再约束直到它被切换为非休眠然后 View 和约束再次起作用。

这可能吗?任何解决方法?

最佳答案

一个 View 的hidden属性不等同于是否安装了 View 。来自 Installing and Uninstalling Views for a Size Class 上的 Apple 文档:

A runtime object for an uninstalled view is still created. However, the view and any related constraints are not added to the view hierarchy and the view has a superview property of nil. This is different from being hidden. A hidden view is in the view hierarchy along as are any related constraints.



所以听起来代码中的等价物是这样的:
//  "Uninstall" the view from the superview
[self.myView removeFromSuperView];

// And add it back in
[self.view addSubview:self.myView]

您仍然可以在内存中查看该 View ,但并未隐藏。不管你怎么做,我猜你在这个 View 来来去去时激活和停用约束(除非 View 本身覆盖屏幕上的其他东西并且不需要重新排列对象)。

关于autolayout - 如何以编程方式卸载 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com