ios - 自动布局:在不知道高度约束的情况下隐藏 UIView

标签 ios objective-c swift autolayout

我的 UIViewController 中有 2 个 View (比如 topViewbottomView),topView 位于顶部。两个 View 都随着 aspect ratio 约束而增长。 topViewbottomView 之间的垂直间距为 0。我想在特定情况下隐藏 bottomView。但问题是我没有可用的 height 约束。我在 topViewbottomView 之间只有Vertical Space constraint。所以我决定将bottomView移到topView下。我尝试在 View Controller 的 viewDidLayoutSubViews

中执行以下操作
self.verticalSpaceConstraint.constant = -1*[bottomView intrinsicContentSize].height;

self.verticalSpaceConstraint.constant = -1*[bottomView bounds].size.height;

intrinsicSize 总是返回 (1,1) 而 bounds 总是返回 (0,0,320,568)。我怎样才能做到这一点?

最佳答案

您可以同时向 View 添加高度约束(具有常量值 0)和纵横比约束,但这些约束应该具有不同的优先级,而不是优先级为 1000 的约束(必需)。然后隐藏 View 只需以编程方式设置宽高比约束的优先级低于高度约束,反之亦然以显示它。希望这有帮助

关于ios - 自动布局:在不知道高度约束的情况下隐藏 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28611277/

相关文章:

objective-c - 触摸开始没有响应

ios - 如何将 “downcast” 的[NSManageObject]数组添加到所选实体中?

ios - 需要帮助创建透明的 MP4 视频以用于 HTML5 视频

ios - 可以将 Unreal Engine 4/Unity3D 嵌入到 iOS 原生应用程序中吗?

objective-c - NSWindow 位于每个应用程序的前面和菜单栏的前面 Objective-c Mac

objective-c - 如何在 NSViewController.transition 期间将 NSViewController 固定到 NSPopover 的顶部?

ios - 在 UICollectionView 中选择时将单元格展开到全屏

ios - Swift 教程 foodtracker : tap gesture method not called

ios - 当单元格不可见时,CellForRow 返回 nil

用于条件绑定(bind)的 iOS Initializer 必须具有 Optional 类型,而不是 'CGFont' ?