因此,这是一个非常简单的问题。我有一个带有按钮的屏幕。每次用户点击按钮时,我们都会让用户从其“照片”中选择一张全景照片,并添加一个UIImageView来显示全景照片。每个UIImageView都有一个〜375x150点的帧(以在iPhone 6上完全显示全景照片)。
问题在于,当我们添加第二个UIImageView时,我们在NSLog中收到一个错误:“与assetd的连接被中断或Assetd终止了”。另外,我们会出现轻微的UI“冻结”。但是UIImageView显示第二张照片,我们绝对可以。
当我们添加第三个UIImageView时,该应用程序将崩溃,并且Xcode显示“与“管理员的iPhone 6”失去连接”。
考虑到全景照片分辨率(〜13600x〜3000),应用崩溃并导致UI死机的原因是完全可以理解的。问题是:是否存在(除了简单地压缩照片并在屏幕上显示调整大小的版本以外)以显示大量全景照片而没有滞后?看着“照片”应用程序,它显示的全景照片没有任何错误,并且没有任何UI冻结。
您的问题看似简单。没错,图片大小意味着您的应用正在解决内存问题。您正在向a传递巨大的图像,UIImageView
并希望它将为您处理所有事情。不会,没有那么多数据。
内置的照片应用解决此问题的方法是使用一种称为平铺的技术,并结合调整大小。它的工作原理如下:
在Google周围,您也许可以找到一个可以为您解决的图书馆,而且我认为Apple甚至可能提供了一个示例(请参阅此问题)。否则,自己编写是一种有趣的学习经历。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句