繁体   English   中英

UITableView与UIImageViews显示大型UIImages - 滚动性能

[英]UITableView with UIImageViews showing large UIImages - Scrolling Performance

我有一个UITableView ,每个单元格包含4个UIImageView 我异步加载图像(使用第三方UIImageView扩展进行异步加载 )。 并且还在做缓存 因此表格视图可以自由滚动。 但是当我将图像分配给UIImageView时,我感觉滚动的滞后。

UIImage *image = [UIImage imageWithContentsOfFile:imageFileURL];
// Scroll is very smooth if I comment out the below line
imageView.image = image;

如果我注释掉上面代码中的最后一行,那么滚动速度会更快。 当我启用此行时,滚动滞后。 所以我需要找到一种方法将图像分配给图像视图而不会干扰滚动。

在我的应用程序中需要注意的一件重要事情是,图像是大图像,例如,它们高于500x500像素 我无法处理图像大小,因为它们来自服务器,我无法控制它。

我唯一的选择是找出将大图像分配给图像视图而不阻止UI交互的方法。

我希望滚动像Fancy app一样工作。 我见过Fancy app,滚动非常流畅,甚至没有任何延迟。

我应该遵循哪些优化技巧?

感谢大家!

  1. 创建自定义单元格。 最大限度地减少透明度的使用,您还可以在不使用UIImageViews和UILables对象的情况下绘制自己的所有内容,即使在3g设备上也可以生成非常快速的滚动。
  2. 将所有图像缓存在一个阵列中,并在单元格中缓存行仅读取它们。
  3. 在将图像添加到源阵列之前,可以将图像调整为实际图纸大小。
  4. 避免在单元格中为行或滚动时使用的任何其他方法中的对象分配和释放。 对象分配很昂贵。
  5. 如果在滚动时下载它们异步,请尝试不为每个图像创建新线程。 您可以拥有一个或多个工作线程。

请找到我认为这里这里对你非常有帮助的链接。 我认为这个问题的问题与链接中的问题相同。 如果没有,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM