我想创建一个故事板作为启动屏幕。我希望屏幕的下半部分在保持宽高比的同时让图像充满空间(它可以向下溢出,或者为了保持高宽比而向左和向右相等,我不介意哪一个)。屏幕的上半部分将为空。

战斗了几个小时,却一无所获-我什至无法将图像填满屏幕的下半部分,不要介意保持宽高比。

我应该使用什么约束来使图像视图外观填充其视图的下半部分?

最佳答案

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

要保持纵横比并用图像填充图像视图,可以将视图的内容模式设置为“纵横比填充”。

但是,由于Aspect Fill仍将使图像在垂直和水平方向上居中,因此,如果您希望图像“向下,或左右均匀溢出”而不是向上,则可以通过编程方式裁剪图像,使其仅包括图像的顶部将在图像视图中可见。例如,仅显示图像的上半部分:

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

10-08 05:07