我使用UIImage以Aspect Fit模式显示我的测试图像。我希望它始终位于顶部并尽可能多地填充空间(见下图)。
如何设置约束,以便图像始终位于顶部(较高设备上没有任何间隙)?
其他信息: 我正在使用Xcode 7.0.1 为iOS 8及更高版本开发。 我正在使用自动布局。
我试图将“> = 0”设置为底部约束,这样底部间隙可以达到双倍高度,但它不起作用。
有什么建议吗?
答案 0 :(得分:1)
我建议您以编程方式计算imageView的大小并直接设置框架。
在viewController的viewWillAppear
或viewDidLoad
方法中执行此操作。
这将解决问题
UIImage *image; // yourImage
CGFloat whRatio = image.size.width/image.size.height;
if (whRatio > 1) {
// there will be borders on top -> adjust your view
imageView.frame = CGRectMake(imageView.frame.origin.x,
imageView.frame.origin.y,
imageView.frame.size.width,
imageView.frame.size.height / whRatio);
}
您可能想要考虑在图像较窄的情况下调整imageView,以完全防止出现空白。
答案 1 :(得分:1)
我认为你有正确的约束。您是否尝试将contentMode设置为“Scale to fill”。 也许你正在使用aspectFit
答案 2 :(得分:0)
这里我要添加一个图像,显示如何为包含图像的视图以及视图内的图像设置约束。
如果有人想详细查看我的实验,我已通过以下链接进行了公开回购。它包括故事板解决方案分支以及代码解决方案分支。