如果视图变得太小,Autolayout可以隐藏它吗?

时间:2016-06-01 09:18:01

标签: ios autolayout

我有三个水平排列的视图(A,B,C)。 A具有固定宽度,B具有最大宽度,C具有最小宽度,并且将所有剩余空间填充到屏幕的宽度。

B是一个图像,可以缩放保留其宽高比。

在大屏幕上,B达到最大尺寸,看起来很棒。在一个非常小的屏幕上,B完全消失,这很好。然而,在两者之间,我们有时会将B看作一个非常小的图像 - 只有几个像素宽,太小而无法显示出来。

我怎么说,“如果B小于20像素宽,则完全隐藏它”?

(我必须支持iOS 7,所以我更喜欢不使用UIStackView的解决方案。)

3 个答案:

答案 0 :(得分:1)

您可以通过优先考虑约束来执行此操作。当它们不满足视图时使它们断开,然后还有一个宽度为零的约束,其中"最低优先级"。

答案 1 :(得分:0)

不,如果视图的权重小于阈值,则单独的Autolayout无法隐藏视图。 正如评论中所提到的,你必须处理这样的依赖关系检查宽度,然后有条件地隐藏它。

答案 2 :(得分:0)

使用autoLayout,您应该定义一个适合所有情况的布局,这意味着适应性强。  所以没有“如果宽度小于那么......那么......”,当我们使用字符串和豆芽时,我们会使用它,但不是今天。 对于你所面临的具体情况,我会在“B”上设置一个不会低于20的约束。或者使“a”和“c”更宽,这样“B”就会消失