iOS多个ViewController共享对象
大家讲道理
大家讲道理 2017-04-17 11:13:11
[iOS讨论组]

我的应用里边有大量图片,而且图片很大,多个ViewController需要用到同一张图片。
我现在的做法是,每次都去创建一个UIImateView,我觉得这样很耗费内存,有没有办法多个ViewController共用一个UIImageView,可以减少内存消耗

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
PHPz

图片很大应异步读入后用QuartzCore缩小图片尺寸再展示(读入和缩小可在子线程做,然后回主线程[imageView setImage:img]),并在内存警告时清空缓存。你的共享内存并不能解决根本问题。
这个怎么做,苹果有个官方demo:LargeImageDownsizing,请自行搜索。或者使用SDImageLoading等第三方库做这件事

iPhone的硬件设计是:屏幕尺寸的图片放在内存肯定够用。3GS这个值是刚刚够(空闲30M左右),4空闲可以到130M左右,4以后的设备使用内存还是很宽松的。

巴扎黑

我觉得耗费内存的应该是图片本身,而不是UIImageView吧?如果图片在某个地方进行了缓存,例如使用了UIImage imangeNamed:这种方法,那么UIImageView里引用的始终是同一个图片的实例。当然,如果你缓存了大量的大图,内存很容易耗尽,所以应该在适当的时候释放掉这些内存。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号