iOS - Autolayout - 根据方向更改按比例增加/减少视图大小

时间:2015-06-05 20:54:30

标签: ios xcode6 autolayout

我浏览了关于自动布局(link)的ray wenderlich教程,然后开始研究一个演示项目,认为我已经把它弄清楚但是我错了。如下面的屏幕截图所示,我有一个导航栏,2个视图和1个按钮。纵向模式下的布局看起来很好,不会对视图或按钮添加任何约束,并且在横向模式视图中可以理解的是混乱。我尝试在视图上添加以下约束,但似乎没有效果。

  • 查看#2:选择视图2>编辑>对齐>容器中的水平中心(完全隐藏视图)

enter image description here

  • 将顶部空间添加到superview。再次查看远离横向和纵向预览。

enter image description here

  • 如果我能正确显示视图#2,我打算在视图#2和视图之间添加垂直空间。查看#3,然后在视图#3和按钮#4之间。

我主要关注的是调整视图大小,以便在iPhone 4s横向模式下显示所有视图和按钮。任何建议或建议表示赞赏。

编辑:这是我想要得到的最终结果: enter image description here

1 个答案:

答案 0 :(得分:1)

添加约束时视图消失的原因是因为UIView没有内在的内容大小,因此其大小为{0,0}。当您没有添加约束时,视图就会出现,因为如果您不自行添加约束,系统会为您添加约束;系统添加的是顶部,左侧,宽度和高度。因此,您需要以某种方式设置视图的大小。你可以给它们明确的尺寸约束,你可以将它们固定在超视图的边缘,你可以根据其他视图给它们相对的高度等。

由于你希望2个视图在横向上按比例缩小,你应该给它们相对于superview的高度。您可以通过选择视图和超级视图,然后选择" Equal Heights"从pin菜单中。编辑该约束以将乘数更改为0.25(蓝色视图)和0.2(橙色视图)(这假设橙色或蓝色视图是约束中的第一个项目 - 如果它们是第二个,则应使用逆值4和5)。你也应该对宽度做同样的事情,因为你似乎也希望它们按比例变小。