尝试在一个屏幕上显示三张全景照片时,应用程序崩溃

情歌

因此,这是一个非常简单的问题。我有一个带有按钮的屏幕。每次用户点击按钮时,我们都会让用户从其“照片”中选择一张全景照片,并添加一个UIImageView来显示全景照片。每个UIImageView都有一个〜375x150点的帧(以在iPhone 6上完全显示全景照片)。
问题在于,当我们添加第二个UIImageView时,我们在NSLog中收到一个错误:“与assetd的连接被中断或Assetd终止了”另外,我们会出现轻微的UI“冻结”。但是UIImageView显示第二张照片,我们绝对可以。
当我们添加第三个UIImageView时,该应用程序将崩溃,并且Xcode显示“与“管理员的iPhone 6”失去连接”。
考虑到全景照片分辨率(〜13600x〜3000),应用崩溃并导致UI死机的原因是完全可以理解的。问题是:是否存在(除了简单地压缩照片并在屏幕上显示调整大小的版本以外)以显示大量全景照片而没有滞后?看着“照片”应用程序,它显示的全景照片没有任何错误,并且没有任何UI冻结。

dandan78

您的问题看似简单。没错,图片大小意味着您的应用正在解决内存问题。您正在向a传递巨大的图像,UIImageView并希望它将为您处理所有事情。不会,没有那么多数据。

内置的照片应用解决此问题的方法是使用一种称为平铺的技术,并结合调整大小。它的工作原理如下:

  1. 最初,它显示了全景图的缩小版本。
  2. 当您开始放大时,它会获取手指的坐标,并计算它们相对于全尺寸图像的位置。
  3. 然后,它会从全尺寸图像中计算出需要抓取的部分,并在完全分辨率下获取,然后缩放并仅显示该部分。因此,连续缩放仅占用全尺寸图像所需存储空间的一小部分。
  4. 同时,它会计算周围区域的屏幕大小的矩形,并在您决定平移时让它们准备就绪,但显然不是全分辨率的。
  5. 当您继续滚动/缩放时,将重复此过程。

在Google周围,您也许可以找到一个可以为您解决的图书馆,而且我认为Apple甚至可能提供了一个示例(请参阅此问题)。否则,自己编写是一种有趣的学习经历。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

android-保存照片时应用程序崩溃

来自分类Dev

三张表,两个外键和一个困惑的程序员

来自分类Dev

显示图库中的图片时,应用程序崩溃

来自分类Dev

尝试打开另一个UIViewController后,应用程序崩溃

来自分类Dev

在新设备上选择照片时,Android应用程序崩溃

来自分类Dev

应用程序试图模态显示一个活动控制器-崩溃,为什么?

来自分类Dev

每次我们在主屏幕上单击一个应用程序图标时,都会启动一个应用程序启动屏幕

来自分类Dev

我正在制作一个可以自行拍摄全景照片的iOS应用

来自分类Dev

使用回形针在Rails应用程序中上传照片时,显示内容类型无效

来自分类Dev

尝试将意图移动到另一个适配器时应用程序崩溃

来自分类Dev

使用相机后尝试编辑图片时,Android new Photos应用程序崩溃

来自分类Dev

当我尝试下载图片时,我的应用程序崩溃了

来自分类Dev

代号一个应用程序可在模拟器上运行,但在iPhone设备上反复崩溃

来自分类Dev

照片应用程序不显示照片

来自分类Dev

尝试在AlertDialog按钮上显示Toast时,应用程序崩溃(在片段中)

来自分类Dev

在 Ubuntu 18.04 上为“显示应用程序”创建一个“.desktop”快捷方式

来自分类Dev

尝试在我的应用程序中显示由内置相机应用程序拍摄的照片

来自分类Dev

一个应用程序可以访问Android中另一个应用程序的屏幕吗?

来自分类Dev

应用程序未显示在iPad上的照片库中

来自分类Dev

当 FocusSearch 中的下一个控件无法聚焦在 Telerik 数据表单上时,应用程序崩溃

来自分类Dev

如何始终显示三张卡片

来自分类Dev

具有ldpi屏幕的设备上的应用程序崩溃

来自分类Dev

NativeScript:IOS 应用程序在启动屏幕上崩溃

来自分类Dev

只显示一个应用程序的 Dash 视图?

来自分类Dev

在Jetpack Compose上制作三张卡片,但仅显示两张

来自分类Dev

尝试显示Toast时应用程序崩溃

来自分类Dev

应用程序在小屏幕上崩溃,但不在大屏幕上崩溃

来自分类Dev

从另一个域上的第三方应用程序访问 Dynamics CRM Web API

来自分类Dev

在一个应用程序中显示其他应用程序列表

Related 相关文章

  1. 1

    android-保存照片时应用程序崩溃

  2. 2

    三张表,两个外键和一个困惑的程序员

  3. 3

    显示图库中的图片时,应用程序崩溃

  4. 4

    尝试打开另一个UIViewController后,应用程序崩溃

  5. 5

    在新设备上选择照片时,Android应用程序崩溃

  6. 6

    应用程序试图模态显示一个活动控制器-崩溃,为什么?

  7. 7

    每次我们在主屏幕上单击一个应用程序图标时,都会启动一个应用程序启动屏幕

  8. 8

    我正在制作一个可以自行拍摄全景照片的iOS应用

  9. 9

    使用回形针在Rails应用程序中上传照片时,显示内容类型无效

  10. 10

    尝试将意图移动到另一个适配器时应用程序崩溃

  11. 11

    使用相机后尝试编辑图片时,Android new Photos应用程序崩溃

  12. 12

    当我尝试下载图片时,我的应用程序崩溃了

  13. 13

    代号一个应用程序可在模拟器上运行,但在iPhone设备上反复崩溃

  14. 14

    照片应用程序不显示照片

  15. 15

    尝试在AlertDialog按钮上显示Toast时,应用程序崩溃(在片段中)

  16. 16

    在 Ubuntu 18.04 上为“显示应用程序”创建一个“.desktop”快捷方式

  17. 17

    尝试在我的应用程序中显示由内置相机应用程序拍摄的照片

  18. 18

    一个应用程序可以访问Android中另一个应用程序的屏幕吗?

  19. 19

    应用程序未显示在iPad上的照片库中

  20. 20

    当 FocusSearch 中的下一个控件无法聚焦在 Telerik 数据表单上时,应用程序崩溃

  21. 21

    如何始终显示三张卡片

  22. 22

    具有ldpi屏幕的设备上的应用程序崩溃

  23. 23

    NativeScript:IOS 应用程序在启动屏幕上崩溃

  24. 24

    只显示一个应用程序的 Dash 视图?

  25. 25

    在Jetpack Compose上制作三张卡片,但仅显示两张

  26. 26

    尝试显示Toast时应用程序崩溃

  27. 27

    应用程序在小屏幕上崩溃,但不在大屏幕上崩溃

  28. 28

    从另一个域上的第三方应用程序访问 Dynamics CRM Web API

  29. 29

    在一个应用程序中显示其他应用程序列表

热门标签

归档