Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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_Swift_Xcode_Nslayoutconstraint - Fatal编程技术网

Ios 受宽度和纵横比约束的视图,不更新高度

Ios 受宽度和纵横比约束的视图,不更新高度,ios,swift,xcode,nslayoutconstraint,Ios,Swift,Xcode,Nslayoutconstraint,因此,在我的main.storyboard上,我有一个带有几个按钮的图像。所有这些都以中心为中心。我想做的是缩放所有东西,以便在不同的设备上,从透视/比率的角度来看,它看起来完全相同。也就是说,如果iPhone8 Plus比iPhone8大10%,我希望按钮和图像在Plus上大10% 我遵循这条命令,将对象的宽度限制为屏幕宽度的某个百分比,比如25%。然后,他说要限制纵横比,这样当宽度根据屏幕大小变化时,高度也会随之变化 我这样做,为我的按钮和图像视图。当我查看对象的尺寸并在通过iPhone8P

因此,在我的main.storyboard上,我有一个带有几个按钮的图像。所有这些都以中心为中心。我想做的是缩放所有东西,以便在不同的设备上,从透视/比率的角度来看,它看起来完全相同。也就是说,如果iPhone8 Plus比iPhone8大10%,我希望按钮和图像在Plus上大10%

我遵循这条命令,将对象的宽度限制为屏幕宽度的某个百分比,比如25%。然后,他说要限制纵横比,这样当宽度根据屏幕大小变化时,高度也会随之变化

我这样做,为我的按钮和图像视图。当我查看对象的尺寸并在通过iPhone8Plus和iPhoneSE查看对象之间切换时,宽度会改变,但高度不会改变。因此,很明显,宽度与屏幕大小相适应,但高度与屏幕大小不相适应。注意,所有按钮和图像都会出现这种情况。我是否应该约束高度并去掉纵横比约束?或者,有没有一种方法可以固定纵横比,使其改变高度

如果您有任何问题或意见,请告诉我,期待回复

编辑:根据请求,这里有两张约束的图片。一个是纵横比约束,另一个是宽度约束

这项工作你需要

1-屏幕任意百分比的宽度限制

2-纵横比约束

通过按ctrl键从元素拖动到元素本身,并从弹出窗口中选择纵横比,然后配置乘数,e.x 0.5平均高度将为半宽


3-原点约束x,y

请看以下示例:

两个按钮的宽度限制均为视图0.25*宽度的25%

在为iPhone SE设计时,它们都是80 x 30

按钮B还具有8:3的纵横比约束

在iPhone8上观看时+

您可以看到按钮A的宽度为103.33,但其高度保持在30


按钮B的宽度为103.33,但由于其具有宽高比约束,因此其高度也会拉伸。在本例中,从30到38.67。

为一个项目附加约束作为所有的示例。是否将按钮高度约束为其自身的宽度?@DonMag否,我根本没有约束高度。只是相对于Superview的宽度我的方法是a删除图像上的所有约束,b在我想要的地方绘制,c将前导和后缘约束到父视图,d约束纵横比,e。在父视图中居中。有趣的是,为什么需要原点约束?这将如何影响其基于纵横比更新高度的能力?任何项目都应具有x,y约束以确定其位置,然后根据宽度和高度,它将拉伸,如果您想将项目居中,则需要centerX,从屏幕截图中可以看出,红线表示缺少约束,你能指定你给出的所有约束吗?如果你设置width=per*superview.width,那么另一个约束项应该是firstItemheight@Addison您的问题不在于宽度和纵横比约束,而是您没有为图像设置顶部和centerX约束我实际上有一个centerX约束,然而,截图中可能没有捕捉到这一点。不管怎样,你说的对,我对它没有任何限制。由于图像朝向屏幕顶部,并且其下方的所有其他内容都使用顶部约束来附加到图像,我是否应该执行顶部空间到安全区域的约束?当我尝试这样做时,我的所有其他按钮都会移动到离图像太近的位置,因此它们会重叠。为什么会发生这种情况?我的按钮和图像之间的约束都基于乘数,而不是常量。它们不应该随着图像向上移动吗?我相信我有相同的东西——我有宽度和纵横比约束。我也在居中,但看起来你也一样。一步一步来。。。向图像视图添加顶部约束。添加0.75视图宽度的宽度约束。添加31:10的纵横比。根据不同的设备大小更改视图。你能同时改变宽度和高度吗?这很有效!我最终只是清理了我的限制并尝试了这一点,并且成功了。我会更新你的帖子,但你是否应该创建一个新的“答案”,我可以将其标记为解决方案,还是我应该将你已经给出的解决方案标记为正确答案?我希望你可以简单地接受它。这是正确的方法,你的评论有助于澄清。太好了!最后一个问题:由于我现在通过顶部约束将按钮附加到图像上,我想使用乘法器来保持设备之间的一致性,对吗?这是什么的乘数?屏幕高度?图像高度?