使用自动布局和大小类

时间:2016-02-10 20:15:06

标签: ios xcode autolayout size-classes

我是使用自动布局和大小类的新手,但我已经做了很多或研究它是如何工作的。虽然我理解它,但我仍然无法想出简单的事情。我想要做的是将所有iPhone的两个按钮置于纵向模式中,而在5.5英寸屏幕上它看起来很好,它会变得更糟,并且随着屏幕尺寸的减小。我发现学习如何使用自动布局非常具有挑战性,因此非常感谢任何帮助。

enter image description here

2 个答案:

答案 0 :(得分:1)

你的意思是你希望它们垂直居中吗? (看起来他们已经水平居中。)

我的猜测是,现在,您有一个顶部间距约束到顶部按钮。这使得您可以在顶部按钮和屏幕顶部之间保持固定的距离,这就是为什么按钮在较小的屏幕上进一步向下推的原因 - 相同的距离代表较小屏幕的较大比例。

相反,您可能希望其中一个按钮具有中心Y 约束。将此作为概念证明的快速方法是:

  • 限制顶部按钮的中心Y等于其超级视图的中心Y
  • 限制底部按钮顶部的顶部按钮底部有一个小(默认)空间

这是一个快速的自动布局系统,可以使两个按钮靠近屏幕中心,并在较小的设备上保持比例。试一试,看看它是否符合您的要求。

如果这似乎是正确的,但你想要一对按钮在一起(也就是说,你希望它们之间的间隙直接落在屏幕的中心线上),你和#39; ll可能需要一个额外的容器视图包含两个按钮。然后,您可以将容器视图的中心Y固定到其超视图的中心Y,并将按钮分别对齐容器的顶部和底部。

希望有所帮助!

答案 1 :(得分:0)

这也困扰了我,直到我弄清楚了。这里有一些提示:

  • 您在底部选择了尺寸等级,并且故事板上的视图控制器的大小也是如此。他们是不同的东西!令人难以置信的是,改变大小等级也会改变控制器的大小,所以你最终认为iPhone是紧凑的/任何。
  • 它的实际工作方式如下:size类确定存在哪些视图和约束。当您在右侧的检查器中出现复选框的任何/任何尺寸类别下拉视图时,您会注意到。它将在"安装"。如果现在更改size类,视图将消失,直到您在此新类上安装它。约束也是如此。
  • 演示视图控制器的大小由右侧检查器控制。你可以制作任何你想要的尺寸,但你可能有一些像iPhone 6这样的目标设备。

自动布局:

  • 在你弄清楚它们的含义之前,制约因素是很繁琐的。你必须考虑一个假想的侏儒谁将为你画出场景。如果你没有给他足够的信息,他就不知道在哪里放置控件。如果你给他不一致的信息,他会吐出一个NSLayoutConstraint错误。
  • 不要使用自动生成的约束。你永远不知道它做了什么。使用逻辑。

您的具体问题:

  1. 从任何/任何
  2. 中的干净板开始
  3. 删除
  4. 中的按钮
  5. 右键单击左侧的按钮,将前导约束添加到边距。做同样的事情。将约束常量编辑为零。确保它不是相对于边距,因为你想要它一直到边缘。这会修复按钮的X位置。您要说的是,无论屏幕大小如何,按钮的边缘都必须触摸屏幕的边缘。
  6. 要修复按钮的Y位置,请为上边缘创建约束,为其他按钮创建约束,然后添加高度约束。
  7. 更改控制器的大小以查看它的外观。请记住,您可能需要刷新它。