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

问题描述 投票:-1回答:1

我有2个按钮的水平UIStackview(宽度=屏幕宽度高度= 40)。我将两个按钮的宽度和高度都设置为40。UIStackviewAlignment为Fill,Distribution为等间距。

现在第一个按钮在stackview的前端,第二个按钮在stackview的后端,这对我来说是可以的。

当我隐藏按钮2时,按钮1即将到达我不想要的stackview的中间。如何实现?

ios objective-c swift storyboard uistackview
1个回答
0
投票

通过设计,隐藏的子视图不仅被隐藏,而且也不再对布局有所贡献。这是自动布局无法轻松实现的主要功能。

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

其他解决方法

除了隐藏子视图,您还可以将其alpha设置为0。这样子视图将不可见,但会参与布局。

© www.soinside.com 2019 - 2024. All rights reserved.