iOS 保持 UIImageView 的纵横比但填充宽度
iOS keep aspect ratio of UIImageView but fill width
这是我在 iOS 8 和 XCode 6 下从头开始的第一个应用程序,所以这些间距问题一直困扰着我。在下面你可以看到我有一个 UIImageView 我想成为一个正方形,但我希望它在屏幕宽度上伸展,因为 well.It 有一个宽度和高度值所以当应用程序运行时屏幕是更宽,所以它最终在左上角变成一个小盒子。我尝试过以我能想到的各种方式来处理约束,但是当我对其进行约束时,图像会放大到全尺寸并覆盖屏幕上的所有内容。如何让它拉伸并保持 1 比 1 的纵横比?
编辑
好吧,我错了。不是 UIImageView 没有调整,而是整个视图。
我会以编程方式设置框架,根本不使用约束。为此
- Link ImageView 到其视图控制器中的出口
设置框架使两个值相等
frame.size.width/frame.size.height
使用图像查看内容模式:
[self.imageView setContentMode:UIViewContentModeScaleAspectFill];
看来您还希望边框的宽度能够填满屏幕。使用这些约束:
- 到顶部、左侧和右侧的距离为 0。
- 高度等于宽度限制。
- 图像比例1:1约束。
然后应适当调整图像视图的大小。
将两侧和顶部约束到父视图。您也可以这样说,例如 width/height 可以是 >= 320,这有时会有所帮助。但请记住,它只能在纵向模式下使用,当您将 UI 设置为横向模式时,图像将永远不会保持正方形,同时填充宽度并完全显示在屏幕上。
编辑: 图像不应该试图拉伸超出屏幕边界(纵向),只要你不告诉它应该 "this far from the bottom"
编辑 - 2: 将背景视图约束设置为超级视图。所有 4.
这是我在 iOS 8 和 XCode 6 下从头开始的第一个应用程序,所以这些间距问题一直困扰着我。在下面你可以看到我有一个 UIImageView 我想成为一个正方形,但我希望它在屏幕宽度上伸展,因为 well.It 有一个宽度和高度值所以当应用程序运行时屏幕是更宽,所以它最终在左上角变成一个小盒子。我尝试过以我能想到的各种方式来处理约束,但是当我对其进行约束时,图像会放大到全尺寸并覆盖屏幕上的所有内容。如何让它拉伸并保持 1 比 1 的纵横比?
编辑
好吧,我错了。不是 UIImageView 没有调整,而是整个视图。
我会以编程方式设置框架,根本不使用约束。为此
- Link ImageView 到其视图控制器中的出口
设置框架使两个值相等
frame.size.width/frame.size.height
使用图像查看内容模式:
[self.imageView setContentMode:UIViewContentModeScaleAspectFill];
看来您还希望边框的宽度能够填满屏幕。使用这些约束:
- 到顶部、左侧和右侧的距离为 0。
- 高度等于宽度限制。
- 图像比例1:1约束。
然后应适当调整图像视图的大小。
将两侧和顶部约束到父视图。您也可以这样说,例如 width/height 可以是 >= 320,这有时会有所帮助。但请记住,它只能在纵向模式下使用,当您将 UI 设置为横向模式时,图像将永远不会保持正方形,同时填充宽度并完全显示在屏幕上。
编辑: 图像不应该试图拉伸超出屏幕边界(纵向),只要你不告诉它应该 "this far from the bottom"
编辑 - 2: 将背景视图约束设置为超级视图。所有 4.