【问题标题】:UIStackview keep subviews right align, even if other view is hiddenUIStackview 保持子视图右对齐,即使其他视图被隐藏
【发布时间】:2020-04-26 22:24:28
【问题描述】:

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

现在第一个按钮位于 stackview 的前端,第二个按钮位于 stackview 的尾端,这对我来说没问题。

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

【问题讨论】:

  • 我认为您不想在这种情况下设置 UIButton 宽度?让 UIStackview 放大或缩小按钮。

标签: ios objective-c swift storyboard uistackview


【解决方案1】:

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

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

其他解决方法

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-01
    • 2017-05-31
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2016-03-21
    相关资源
    最近更新 更多