我一直在开发带有按钮网格的应用程序。网格每行包含4个按钮,(当前)包含6行。在情节提要中,每行按钮都在水平堆栈视图中,所有6个堆栈视图在垂直堆栈视图中。
我不希望所有按钮一直都可见,所以我用.isHidden
打开和关闭它们。当我在模拟器中运行应用程序时,这会引起一些问题:
我希望所有按钮都保持相同大小,但是如果隐藏了给定行/堆栈视图中的一个或多个按钮,则该行中的其余按钮会调整其大小以填充该行。我猜想,将按钮上的约束和堆栈视图上的设置结合起来可以解决此问题,但是我还没有想到正确的组合。
例如,如果我开始时未隐藏按钮的前三行,然后尝试取消隐藏其他行中的一个按钮,则所有按钮中的 all 都会消失。但是,如果我“打印”每个按钮的.isHidden
状态,则应该可见的按钮带有.isHidden = false
。
有解决任何一个问题的想法吗?
在此先感谢您的帮助。
答案 0 :(得分:0)
要回答您的第一个问题...
当您将视图隐藏在UIStackView
中时,自动布局将其视为“消失” ---堆栈视图将重新布局其arrangedSubviews
,就好像该视图从未从那里开始。
如果您想要此结果:
您最好的选择是将该视图/按钮的.alpha
属性设置为0
。它将是完全不可见的(因此实际上是“隐藏”),并且堆栈视图将保留其当前布局。而且,带有.alpha = 0
的控件不会响应触摸(因此您无法点击不可见的按钮)。
对于第二个问题,我建议您自己重新发布该问题。确保包括您使用的代码,但效果不理想。
请参阅:How to Ask