我第一次制作通用应用程序。我想根据屏幕尺寸更改图像尺寸,使其在 iPad 上看起来更大,在 iPhone 上看起来更小。它在两个方向上都应该看起来不错。
我希望 UIImageView 的大小与屏幕大小成比例。这些是迄今为止应用的约束:
这里的 topConstraint 是一个导出,其代码如下:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.current.orientation.isLandscape {
topConstraint.constant = 40
}
else {
topConstraint.constant = 12
}
}
如果我只给出前导的顶部和底部约束,那么它会显示描述缺失约束的红线,如下所示:
请帮忙。我正在使用 swift 3 和 xcode 8。我知道它与纵横比有关,但我的仍然不完美。
Best Answer-推荐答案 strong>
您的顶部标签没有足够的约束来知道它应该在 Y 轴上的位置。
让我们看看从 View 底部开始沿 Y 轴的约束。你设置:
- View 的底部距离 detailLabel 底部的 16p,
- 您的 detailLabel 顶部距离 imageView 底部 16p,
- 然后你有你的图像的纵横比,它给定宽度(你通过 imageView 和 X 中心的前导约束来设置它)正在设置高度
- imageView 顶部距离 detailLabel 底部 16p
- dateLabel 顶部距离 titleLabel 底部 4p
- 您没有设置从 titleLabel 顶部开始到 View 顶部的约束。
因此,总而言之,您缺少一个约束。设置标题标签的顶部约束,你应该没问题。另外,我会删除你的 imageView 的 X 中心约束并将其替换为 32pt 的尾随约束(与前导约束相同,更易于阅读,将显示相同,并且推断更少)
关于ios - 图像尺寸与屏幕尺寸成比例,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/42361576/
|