gpt4 book ai didi

macos - 使用 Cocoa 自动布局隐藏和显示 View

转载 作者:行者123 更新时间:2023-12-03 16:31:58 25 4
gpt4 key购买 nike

我试图根据是否使用自动布局单击按钮来隐藏和显示下图中的 View #1。有人知道该怎么做吗?

我尝试为 View #2 设置两个 NSLayoutConstraint,一个与 View #1 和 View #2 的 super View 的顶部绑定(bind),另一个与 View #1 的底部绑定(bind),然后更改NSLayoutConstraints 的优先级是隐藏 View #1,但这似乎没有做任何事情。

如有任何建议,我们将不胜感激。我主要尝试在 IB 中做到这一点,但也欢迎编程解决方案。

引用图片:

View test

最佳答案

NSStackView 在这里是合适的。它自动创建约束,将其 subview 在堆栈中相互关联。

隐藏 View 不会更改布局。它仍然在那里,只是没有绘制。

如果您在没有 NSStackView 的情况下执行此操作,您要做的就是更改约束。保留一个实例变量_stackConstraints。在一种配置中,堆栈约束为

V:|-[0]-[view1(v1Height)]-0-[view2]-0-[view3(v3Height)]-0-|

以及其他配置

V:|-[0]-[view2]-0-[view3(v3Height)]-0-| 

当你按下按钮时,执行

[[self view] removeConstraints:_stackConstraints];
_stackConstraints = <make other set of constraints>
[[self view] addConstraints:_stackConstraints];

关于macos - 使用 Cocoa 自动布局隐藏和显示 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20126588/

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