iOS:具有隐藏 View 的布局约束

标签 ios uiview autolayout nslayoutconstraint

假设我有两个底部对齐的 View :

V:[Label1]-10-[Label2]-20-|

Label1Label2之间有10个点间距,Label2和bottom之间有20个点间距。

现在,在某些情况下,我需要隐藏 Label2,在这种情况下,我想要:

V:[Label1]-15-|

也就是说,Label2 被隐藏,Label1 到底部有 15 个点的间距。

我正在 Storyboard中设置它,我正在考虑使 15 点间距具有较低的优先级并根据需要隐藏 Label2,但它似乎不起作用。

实现此目标的最佳方法是什么?

谢谢!

最佳答案

通过保持您提到的低优先级约束,我找到的较短的解决方案是:

@IBOutlet weak var view2: UIView!
var constraints: [NSLayoutConstraint]? = nil

func foo() {
    if needsToHideView2 {
        constraints = view2.constraints
        NSLayoutConstraint.deactivate(view2.constraints)
    }
    if needsToShowView2 {
        NSLayoutConstraint.activate(constraints!)
    }
}

关于iOS:具有隐藏 View 的布局约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48512162/

相关文章:

ios - 模糊效果未正确调整到父 View

iphone - 在 iOS OpenGL 应用程序中,使用 ivar 而不是属性会显着提高性能吗?

ios - 主屏幕上 3D Touch 快捷方式项目的图标大小是多少合适?

ios - 我可以在没有 Xcode 的情况下下载 iOS SDK 4.3 吗?

ios - ScrollView 中的分页和重用 View

ios - 添加为 UIImageView 的 subview 时 View 被翻转

ios - xib 中的自定义 View 不起作用

ios - AutoLayout:我可以指定在需要时应该打破哪个约束并设置备份吗?

ios - 如何调整调整 UICollectionView 大小的 Autolayout 位置?

ios - UITableView 错误?可重复使用的细胞不正确