我应该在渲染到屏幕之前调整UIImage的大小吗?

时间:2018-04-10 11:04:46

标签: ios uiimageview uiimage render

在开发ios应用程序时,假设我有大尺寸的UIImage

let image = UIImage(named: "unicorn")! // actual image size is 2000x2000

我应该在渲染到屏幕之前调整大小

let size = CGSize(width: 100.0, height: 100.0)
// use AlamorefireImage UIImage extension to resize UIImage
let scaledImage = image.af_imageScaled(to: size)
// render
imageView.image = scaledImage

或者我直接将图像渲染到屏幕

imageView.frame.size = CGRect(width: 100, height: 100)
imageView.image =image

哪种绘画性能更好?

1 个答案:

答案 0 :(得分:1)

让我们考虑下一个案例:

  1. 如果您使用的是图像(项目文件夹)。 最好的方法是使用资产目录。在这种情况下,您必须存储您需要的精确尺寸的图像,例如。 100x100 pt(特定屏幕尺寸的特定图像,例如1x为100x100,2xx为200x200,3x为300x300)。这是表现的最佳选择。

  2. 如果您从网络下载图片。我想最好的方法是在服务器上放一个缩略图图像和大图像。例如。缩略图图片,尺寸为100x100像素,适用于列表中的小型用户照片,500x500像素,适用于用户个人资料页面上的大型用户照片。

  3. 当您从网络下载仅大尺寸的图像时,有一些情况,例如。 2000×2000。在这种情况下,您可以像渲染一样在渲染之前调整图像大小。但是不要在主线程上阻止应用程序冻结。如果此图像将在应用程序中多次使用(例如,在表格视图单元格中),您甚至可以将此重新缩放的图像保存到缓存中,并在下次从缓存中使用它。