UIStackView分布均匀填充
UIStackView Distribution Fill Equally
因此,我有一个包含四 (4) 个 UIView
的 UIStackView
。如果我删除这些 UIView
中的一 (1) 个,其他三 (3) 个将填充 UIStackView
.
中的整个 space
我的问题:
如何在 UIView
上添加最大高度,使其不会填满 UIStackView
的整个 space,即使分布均匀填充?我读了一些关于添加约束的内容,但我无法使其工作。顺便说一句,我正在使用swift。
谢谢。
尝试将堆栈视图的属性检查器中的 "Distribution" 属性 更改为等间距。它应该有效。
或者您可以将其更改为均等填充,以便在 Stack 视图中均等填充剩余的 3 个视图。
作为确认,这是当前行为:
这就是你要的是:
为了实现它,您可以遵循这个简单的技巧:
P.S: 我假设您为堆栈视图添加了所需的适当约束。
如果您的堆栈视图没有 "height" 约束,请添加一个:
现在,将其作为 IBOutlet
添加到指定的 ViewController;在我的例子中,我称之为 stackHeight
:
@IBOutlet weak var stackHeight: NSLayoutConstraint!
如果您想隐藏视图(在我的示例中,我隐藏了基于分配给自身的 IBAction
的橙色按钮,点击它时应该隐藏),您需要获取要隐藏的视图的高度并从 stackHeight.constant
:
中减去
@IBAction func orangeTapped(_ sender: AnyObject) {
orange.isHidden = true
// here we go:
stackHeight.constant = stackHeight.constant - orange.frame.size.height
}
移除堆栈视图底部边缘的约束。然后它将调整大小以适合可见控件。
如果不想去除底约束,只需将distribution设置为.fill
,在栈尾添加透明UIView
即可。
此视图将拉伸,而其他视图将保持堆叠在顶部。
因此,我有一个包含四 (4) 个 UIView
的 UIStackView
。如果我删除这些 UIView
中的一 (1) 个,其他三 (3) 个将填充 UIStackView
.
我的问题:
如何在 UIView
上添加最大高度,使其不会填满 UIStackView
的整个 space,即使分布均匀填充?我读了一些关于添加约束的内容,但我无法使其工作。顺便说一句,我正在使用swift。
谢谢。
尝试将堆栈视图的属性检查器中的 "Distribution" 属性 更改为等间距。它应该有效。
或者您可以将其更改为均等填充,以便在 Stack 视图中均等填充剩余的 3 个视图。
作为确认,这是当前行为:
这就是你要的是:
为了实现它,您可以遵循这个简单的技巧:
P.S: 我假设您为堆栈视图添加了所需的适当约束。
如果您的堆栈视图没有 "height" 约束,请添加一个:
现在,将其作为 IBOutlet
添加到指定的 ViewController;在我的例子中,我称之为 stackHeight
:
@IBOutlet weak var stackHeight: NSLayoutConstraint!
如果您想隐藏视图(在我的示例中,我隐藏了基于分配给自身的 IBAction
的橙色按钮,点击它时应该隐藏),您需要获取要隐藏的视图的高度并从 stackHeight.constant
:
@IBAction func orangeTapped(_ sender: AnyObject) {
orange.isHidden = true
// here we go:
stackHeight.constant = stackHeight.constant - orange.frame.size.height
}
移除堆栈视图底部边缘的约束。然后它将调整大小以适合可见控件。
如果不想去除底约束,只需将distribution设置为.fill
,在栈尾添加透明UIView
即可。
此视图将拉伸,而其他视图将保持堆叠在顶部。