UIStackview 保持子视图右对齐,即使其他视图被隐藏



我有带有 2 个按钮的水平 UIStackview(宽度 = 屏幕宽度高度 = 40(。我将两个按钮的宽度和高度设置为 40。UIStackview 对齐方式为填充,分布对齐方式为间距相等。

现在第一个按钮位于堆栈视图的前导侧,第二个按钮位于堆栈视图的后侧,这对我来说没问题。

当我隐藏按钮 2 时,按钮 1 即将进入堆栈视图的中间,这是我不想要的。如何实现它?

根据设计,隐藏排列的子视图不仅隐藏,而且不再有助于布局。这是自动布局无法轻松实现的主要功能。

如果要防止这种情况,则可以将视图包装在另一个视图中。不要隐藏 UIStackView 的直接子视图(新设置中的包装器视图(,而是隐藏内部视图(与旧设置中的方式相同,只是它现在是嵌套的(。由于直接子视图是可见的,因此 UIStackView 不会回收空间。但用户看不到任何内容,因为查看内容是隐藏的。

其他解决方法

无需隐藏子视图,只需将其 alpha 转换为 0。这样,子视图将不可见,但它将参与布局。

最新更新