-1

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

我试过这个

在方法 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
    }

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

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

谢谢

4

2 回答 2

1

只需这样做:

imageView.contentMode = .ScaleAspectFill

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

  1. 图像视图中的图像保持正确的纵横比(即未拉伸),
  2. 图像完全填满图像视图。如果需要,将裁剪图像的中心部分。例如,如果您的图像视图是正方形的,并且图像是矩形,那么图像将被裁剪为正方形。
于 2016-02-15T16:08:15.280 回答
1

我认为您正在寻找的是您UIImageViewcontentMode财产。像这样:

myImageView.contentMode = .ScaleAspectFit

该值将确保当您设置视图的图像时,图像将尽可能多地填充视图而不拉伸图像。您也可以使用.ScaleAspectFill来完全填充视图,但随后您的图像将被裁剪。

于 2016-02-15T15:50:14.320 回答