【发布时间】:2014-12-01 15:13:51
【问题描述】:
我对自动布局有疑问。
我有三个不同的视图(也可以是 n 个视图)。当我将第一个固定到超级视图的顶部并将一个连接到另一个时,一切似乎都很好。但是如果我想改变第一个的高度,其他两个不会跟随(它们保持在同一个位置)。我对此感到奇怪的是,如果我只连接两个视图,则效果很好。
为了更好地理解我想要实现的目标,我使用三个视图制作了简单的示例解决方案:
http://i.stack.imgur.com/cMwiB.png
所以,当我将绿色视图的高度设置为 0(也可以是任何其他数字)并且只连接红色视图时,这工作正常,红色会按应有的方式移动。蓝色的没有连接,它保持在原来的位置:
这是我将蓝色连接到红色时的屏幕截图:
我想做什么:
- 也将蓝色连接到绿色(不起作用)
- 仅将蓝色连接到绿色(不起作用)
- “装箱”:当时有带视图的盒子(丑陋,难以管理,并非在所有情况下都有效)
我想知道的:
- 是什么导致了这种情况发生?我可以改变这种行为吗?
- 具有灵活长度的最佳做法是什么(除了 UITableView)
提前致谢。
【问题讨论】:
-
这里缺少链接(没有足够的声誉:()i.stack.imgur.com/nq4EX.pngi.stack.imgur.com/vh1fX.png
-
这确实是一种奇怪的行为。您能否将设置约束的代码(或 Interface Builder 屏幕截图)粘贴到您设置约束的位置?
-
这里是 xml 中的故事板:pastebin.com/LFa27mrv 有一些未解决的自动布局冲突不会影响这一点(我刚刚创建了问题中提到的这些连接)。这是一个没有代码的普通应用程序。只有一个故事板文件。谢谢
-
测试时如何将绿色视图的高度设置为 0?
-
嗯,我可以通过代码或者storyboard来设置,没关系...
标签: ios objective-c autolayout