【发布时间】:2012-02-08 07:45:57
【问题描述】:
这实际上并不是一个关于解决特定问题的问题,而是一个指向正确方向的请求。
我正在制作一个应用程序,我在其中将多个图像(保存为 JPG)同时加载到屏幕上,并且必须是这样,我无法卸载任何一个,因为它们都在显示一次。
我尝试以大约 800px*600px 的分辨率加载 30 张图片,天真地认为它只会将图片的“压缩”大小加载到内存中(大约 200 KB) - 所以总共 6 MB?当然,在几次内存警告之后,我意识到自己是多么愚蠢。所以我现在将它们重新调整为大约 400 像素 * 300 像素,而我的 iPhone 4S 刚好可以满足内存需求。
我最初使用 UiView,在 drawRect 中我绘制了一个自定义绘制的图像,但改用 UIImageView 极大地改善了这种情况。该应用程序的速度和响应速度要快得多。 我还发现在我的图层中关闭光栅化会对性能产生巨大影响。
这些“发现”花了我几个小时来解决,我想知道是否有特定的设计模式或资源可以用来尽可能高效地将我的图像加载到屏幕上;主要是关于使用尽可能少的内存 - 有没有好的经验法则?为什么使用 UIImageView 与带有图像的 UiView 会产生如此大的差异?
如果有人能提供帮助将不胜感激。
谢谢。
【问题讨论】:
标签: iphone objective-c cocoa-touch uiview uikit