堆栈视图中的元素不移动/调整

Posted

技术标签:

【中文标题】堆栈视图中的元素不移动/调整【英文标题】:Elements in stack view not shifting/adjusting 【发布时间】:2021-07-14 05:07:00 【问题描述】:

我在水平堆栈视图中有 4 个按钮,具有“均等填充”分布。在其中一种情况下,我在堆栈视图显示之前隐藏堆栈视图中的第一个按钮,但其他 3 个按钮保持在原位(即第一个按钮仍保持空间),而不是均匀地移动和间隔。

以下是我的堆栈视图的详细信息:

当一个按钮被隐藏时,如何调整/展开堆栈视图中的 3 个按钮?

隐藏按钮的代码:

    self.button1.alpha = 0.0
    self.button1.alpha = 0.0
    self.stackView.layoutIfNeeded()

【问题讨论】:

self.button1.alpha 这只是设置按钮的不透明度,但它仍然存在。使用 isHidden 属性 我最初尝试过 isHidden 并且我也得到了相同的结果。我也尝试过同时使用 isHidden 和 alpha,但按钮仍然占据堆栈视图中的空间。 尝试设置前导约束>= 尝试了 >= 和 您需要像@RajaKishan 建议的那样设置 isHidden = false 。你如何/在哪里设置这个?您确定正在调用代码吗?此外,您不需要调用 layoutIfNeeded 【参考方案1】:

设置alpha 值不会隐藏视图,它会降低视图的不透明度,在您的情况下为button1。当button1 被隐藏时,要在UIStackView 的框架上均匀分布按钮,您必须隐藏button1。您可以通过编程方式切换isHidden 属性,或在情节提要上设置其初始值。

代码是

程序化

button1.isHidden = true  // or false

下面是一个以编程方式切换isHidden 属性的示例

故事板

如果都失败了,

    检查分布 如果button1.isHidden被调用

【讨论】:

以上是关于堆栈视图中的元素不移动/调整的主要内容,如果未能解决你的问题,请参考以下文章

如何调整我的堆栈视图的分布以适应不相等的视图大小?

如何在 Xcode 7 中使用对象库的堆栈视图

无法在滚动视图中正确调整堆栈视图

如何禁用堆栈视图自动调整大小

当我将屏幕大小调整为移动设备时,我的网站移动视图在桌面上正确显示隐藏元素,但在我的手机上它们没有隐藏

查找由 UIStackView swift 调整的视图的大小