为什么在 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 不遵守比率约束?新模型是否不再支持比率约束?
模拟器都是运行ning iOS12.2。
--编辑--
另一个 UI 布局问题仅在 XR/Xs Max 上,与比例无关。我将 UIImageView 放入容器视图中,并将其框架设置为:
imageView.frame = self.containerView.bounds
imageView.contentMode = .scaleAspectFit
imageView 在所有其他模型上看起来都很好,填充了 containerView。但是在XR/XsMax上,右边和底部有一个边距:
我在这里错过了什么?
In the end, I found the problem: I had 2 constraints on this UIImageView: a width constraint of 32 points and a ratio constraint of 1.
确实有效。您很可能错误地配置了纵横比约束。
imageView.frame = self.containerView.bounds
这里,一切就看什么时候你说了。如果你说得太早,比如在viewDidLoad
中,containerView
本身还没有真正的bounds
,那么你最终会得到一个错误的结果。这就是为什么使用约束要好得多。使用约束,您可以保证图像视图适合其父视图。
所以回到使用约束,正确配置宽高比,一切都会好的。
我有一个小 UIImageView
用于显示用户的个人资料照片。这在 iPhone 6S 上看起来不错,但是当我在 iPhone XR 上 运行 它时,图像在屏幕上缩小为一个小点。我尝试了不同型号的模拟器,这个问题只出现在 XR/Xs Max 模拟器上。
最后,我发现了问题:我在这个UIImageView
上有2个约束:32点的宽度约束和1的比例约束。当我删除比例约束并添加高度时32点约束,一切正常
我想知道是什么原因导致 iPhone XR/Xs Max 不遵守比率约束?新模型是否不再支持比率约束?
模拟器都是运行ning iOS12.2。
--编辑--
另一个 UI 布局问题仅在 XR/Xs Max 上,与比例无关。我将 UIImageView 放入容器视图中,并将其框架设置为:
imageView.frame = self.containerView.bounds
imageView.contentMode = .scaleAspectFit
imageView 在所有其他模型上看起来都很好,填充了 containerView。但是在XR/XsMax上,右边和底部有一个边距:
我在这里错过了什么?
In the end, I found the problem: I had 2 constraints on this UIImageView: a width constraint of 32 points and a ratio constraint of 1.
确实有效。您很可能错误地配置了纵横比约束。
imageView.frame = self.containerView.bounds
这里,一切就看什么时候你说了。如果你说得太早,比如在viewDidLoad
中,containerView
本身还没有真正的bounds
,那么你最终会得到一个错误的结果。这就是为什么使用约束要好得多。使用约束,您可以保证图像视图适合其父视图。
所以回到使用约束,正确配置宽高比,一切都会好的。