繁体   English   中英

为什么在iPhone XR / Xs Max上不遵守比例约束?

[英]Why is ratio constraint not respected on iPhone XR/Xs Max?

我有一个小的UIImageView用于显示用户的个人资料照片。 在iPhone 6S上看起来不错,但是在iPhone XR上运行时,图像缩小为屏幕上的一个小点。 我尝试使用不同型号的模拟器,此问题仅出现在XR / Xs Max模拟器上。

最后,我发现了问题:我对此UIImageView了2个约束:宽度约束为32点,比率约束为1。当我删除比率约束并添加高度约束为32点时,一切正常。

我想知道是什么原因导致iPhone XR / Xs Max无法遵守比例约束? 新模型不再支持比率约束吗?

模拟器都运行iOS 12.2。

- 编辑 -

另一个UI布局问题仅在XR / Xs Max上存在,与比率无关。 我将UIImageView放入容器View中,并按如下所示设置其框架:

imageView.frame = self.containerView.bounds
imageView.contentMode = .scaleAspectFit

imageView在所有其他模型上看起来都很好,填充了containerView。 但是在XR / XsMax上,右边和底部都有一个边距:

在此处输入图片说明

我在这里想念什么?

最后,我发现了问题:我对此UIImageView设置了2个约束:宽度约束为32个点,比率约束为1。

那行得通。 您很可能错误地配置了宽高比约束。

 imageView.frame = self.containerView.bounds 

在这里,一切都取决于您何时说。 如果您说得太早,例如在viewDidLoadcontainerView本身还没有真正的bounds ,那么您将得到一个错误的结果。 这就是为什么使用约束要好得多的原因。 使用约束,可以保证图像视图适合其超级视图。

因此,回到使用约束条件,正确配置纵横比,一切都会好起来的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM