UIImageView保持宽高比,但适合宽度

Sir*_*III 7 aspect-ratio uiimageview uiimage ios swift

我有一个固定宽度和高度的UIImageView.我不想改变UIImageView的框架.我想让它保持一个图像,我保持纵横比,我适应宽度,让图像太高,或太短,UIImageView的框架.像这样:

UIImageView框架

红色是UIImageView的框架.灰色是显示的实际图像.

Gle*_*enn 21

我认为最好的方法是使用你的imageView模式(Aspect Fill,Aspect Width,...这基于图像宽度和高度之间的比例)

if image.width > image.height {
    imageView.contentMode = UIViewContentModeScaleAspectFit
    //since the width > height we may fit it and we'll have bands on top/bottom
} else {
  imageView.contentMode = UIViewContentModeScaleAspectFill
  //width < height we fill it until width is taken up and clipped on top/bottom
}
Run Code Online (Sandbox Code Playgroud)

UIViewContentModeScaleAspectFit

通过保持纵横比来缩放内容以适合视图的大小.视图边界的任何剩余区域都是透明的.

UIViewContentModeScaleAspectFill

缩放内容以填充视图的大小.可以剪裁内容的某些部分以填充视图的边界.

没有测试过,但是从我的头脑中看来这似乎是正确的