我应该使用什么约束来使图像视图方面填充其超级视图的下半部分?

时间:2016-10-15 08:57:55

标签: ios

我想创建一个故事板作为我的启动屏幕。我希望屏幕的下半部分能够在保持宽高比的同时让图像填满空间(它可以向下溢出,也可以向左和向右溢出以保持纵横比,我不喜欢'记住哪个)。屏幕的上半部分将会清空。

为此奋斗了好几个小时并且没有任何地方 - 我甚至无法让图像填满屏幕的下半部分,从不保持宽高比。

我应该使用哪些约束来使图像视图方面填充其超级视图的下半部分?

3 个答案:

答案 0 :(得分:1)

就约束而言,您可以将图像视图的高度设置为等于其超视图的高度,然后将0.5的倍数添加到该约束,以便图像视图的高度为其超视图的一半;然后将右边距,左边距和下边距对齐到superview的右边距,左边距和下边距。

要保持宽高比并使用图像填充图像视图,您可以将视图的内容模式设置为宽高比填充。

但是,由于Aspect Fill仍然会在垂直和水平方向上居中放置图像,如果您希望图像“向下溢出,或向右和向右溢出”而不是向上,您可以通过编程方式裁剪图像以仅包含顶部在图像视图中可见的图像。例如,仅显示图像的上半部分:

override func viewDidLayoutSubviews() {
    imageView.layer.contentsRect = CGRect(x: 0, y: 0, width: 1.0, height: 0.5)
}

答案 1 :(得分:0)

我不知道它是否可能只使用autoLayout但是我会怎么做:

您可以尝试将前导,下限和尾随约束添加到superview并将imageView高度设置为随机值(如果使用Web服务,则会在下载图像后立即更改此值)。现在,您可以在此高度约束的文件中创建一个插座。一旦获得图像,您可以调整其大小以适应屏幕,同时保持宽度与屏幕边界并保持其纵横比。根据您获得的图像大小更新高度约束。

答案 2 :(得分:0)

我建议自动布局。

首先拖放一个uiview(在你隐藏之后) 使它1 px高度与宽度无关(如果你想让它从左和右做0px)。 现在将这个视图垂直居中。

拖动图像视图并在视图中放置垂直间距(当然还有左下角和右下角)

希望这有帮助。