Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不了解自动布局、约束和尺寸类_Ios_Autolayout_Size Classes - Fatal编程技术网

Ios 不了解自动布局、约束和尺寸类

Ios 不了解自动布局、约束和尺寸类,ios,autolayout,size-classes,Ios,Autolayout,Size Classes,我有点卡住了,任何帮助都将不胜感激 我会给你一个快速的概述。我有一个屏幕的设计,它是用iphone 6的屏幕尺寸在草图中构建的,然后重新设计以适合iphone 5/5s/5c和6 plus,因为这些是我想要支持的唯一设备 但是设计部分或者仅仅为一个特定的屏幕尺寸实现设计是很容易的,我理解这一部分。我完全迷茫的地方是,如何在一个视图控制器中实现一个设计,它在我设计的所有屏幕尺寸中看起来都应该是这样 我已经阅读了不止几个自动布局和大小类教程,但不确定如何正确使用它们,以便应用程序识别“这是iphon

我有点卡住了,任何帮助都将不胜感激

我会给你一个快速的概述。我有一个屏幕的设计,它是用iphone 6的屏幕尺寸在草图中构建的,然后重新设计以适合iphone 5/5s/5c和6 plus,因为这些是我想要支持的唯一设备

但是设计部分或者仅仅为一个特定的屏幕尺寸实现设计是很容易的,我理解这一部分。我完全迷茫的地方是,如何在一个视图控制器中实现一个设计,它在我设计的所有屏幕尺寸中看起来都应该是这样

我已经阅读了不止几个自动布局和大小类教程,但不确定如何正确使用它们,以便应用程序识别“这是iphone 5,使用这些图像大小和位置,这是iphone 6 plus,使用这些”等等

到目前为止,我所看到的关于自动布局和约束的所有内容仅使用一组数字来判断与元素的距离,例如,但所有屏幕大小都有不同的距离

我遗漏了什么或不理解什么?我知道我在看一些不恰当的东西


提前感谢您的帮助

可以用一组数字来判断距离,这是正确的,但这仍然可以描述视图在不同屏幕大小上的显示方式。您的问题可能是您将约束视为描述视图的框架?(显然,每个设备上都必须有所不同)。我发现将约束视为描述视图的每条边与另一个视图的关系更有用

例如,这里有一个视图控制器,我设置了所有相同的约束,以及它在不同设备上的外观。约束描述了如何将大灰色视图固定到距离其容器视图左右边缘20点的左右边缘。它被固定到距标签顶部8点和距标签顶部8点的位置。标签垂直和水平居中,具有固有的内容大小。每个按钮从底部边缘固定20个点,按钮1和2分别从左边缘和右边缘固定到20个点

我不知道这是否有帮助,或者这不是您想要的答案,您需要根据设备的不同来安排视图:您可以使用Interface Builder中的此按钮告诉Xcode您要创建的约束用于哪个设备大小和方向

使用它选择设备大小/方向。之后,您创建的任何约束将仅在该设备上使用。默认情况下,会选择任何宽度和高度,因此通常会将约束应用于所有设备


此外,您无法选择要支持哪些设备,只能选择iOS版本。

非常感谢您的回答,这确实帮助我改变了一点看法。我仍在努力解决一些问题,但你的例子帮助我理解了早些时候的一部分。我很高兴我能帮上忙。还有什么事情你一直在挣扎?非常感谢你的回答,这确实帮助我改变了一点看法。我仍在努力解决一些问题,但您的示例帮助我理解了早些时候的一部分内容。我仍在努力弄清楚,如果我仍然有3个不同大小的按钮,例如5和6,6+大小,我如何确定每个大小的数学约束,如果我有三个屏幕要构建,如果我只能插入一组约束,代码如何知道显示哪个按钮大小?或者它更像是一种“直到看起来正确为止”的游戏?在您的示例中,您使用了一个
ui按钮
,但是这些按钮有一个隐含的内容大小(其大小取决于它的文本和字体),所以您不应该手动设置其大小。当我创建约束时,我基本上认为,例如,我希望这个按钮固定在底部,每个屏幕大小的左侧,并且创建约束可以做到这一点。如果你能给我一个更具体的例子,我可能会帮上更多的忙。而且,不,一旦你有了更多的经验,你就不需要做实验了。然而,首先,可以通过实验来了解使用AutoLayout可以做的事情,这很有用,我知道我确实做到了。