如何使较大的图像适合小图像视图

时间:2016-02-15 15:22:33

标签: ios objective-c swift image-resizing drawinrect

我有一个固定大小的图像视图。 但是我想在不拉伸的情况下将每种尺寸的图像都装入其中。

我试过这个

在方法resizeImage中,我传递了我选择的图像和 UIImageView的大小。

 func resizeImage(image: UIImage, size: CGSize) -> UIImage {

        UIGraphicsBeginImageContext(size)
        image.drawInRect(CGRectMake(0, 0, size.width, size.height))
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return newImage
    }

但这不起作用,它仍然会返回拉伸的图像。

请让我知道什么是正确的解决方案。

由于

2 个答案:

答案 0 :(得分:1)

我认为您所寻找的是UIImageView的{​​{1}}财产。像这样:

contentMode

此值将确保在设置视图的图像时,图像将尽可能地填充视图而不拉伸图像。您也可以使用myImageView.contentMode = .ScaleAspectFit 完全填充视图,但随后会裁剪您的图片。

答案 1 :(得分:1)

这样做:

imageView.contentMode = .ScaleAspectFill

当你这样做时,会发生两件事:

  1. 图像视图中的图像保持正确的宽高比(即它没有拉伸),
  2. 图像完全填满图像视图。如果需要,将裁剪图像的中心部分。例如。如果您的图像视图是方形,并且图像是矩形,则图像将被裁剪为正方形。
相关问题