我有一个小的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上,左右两侧都有一个空白:
我在这里想念什么?
答案 0 :(得分:1)
最后,我发现了问题:我对此UIImageView设置了2个约束:宽度约束为32点,比率约束为1。
那行得通。您很可能错误地配置了宽高比约束。
imageView.frame = self.containerView.bounds
在这里,一切取决于何时。如果您说得太早,例如在viewDidLoad
中,则containerView
本身还没有真正的bounds
,因此您将得到错误的结果。这就是为什么使用约束要好得多的原因。使用约束,可以保证图像视图适合其超级视图。
所以回到使用约束条件,正确配置纵横比,一切都会好起来的。