iOS常用

iOS开发之photokit图片选择器二次封装

2020-12-16  本文已影响0人  Archer_bling

基于photokit封装一个和当前版本微信选择图片的图片选择器功能组件,基础部分知识已归纳在
iOS开发之AssetsLibrary与photokit总结
这里,本篇主要讲述新版优化所遇到的问题

内存问题

1、之前的封装版本会有内存峰值较高的情况,对于低版本机型不友好,如果图片存储过多会造成内存峰值较高而闪退
原因:

解决:
1、尝试使用photokit提供的startCachingImages方法来批量进行图片缓存,可以在需要的时候直接取出,但也是会涨内存的操作
2、提供方法进行异步线程缓存图片,但缓存时机无法掌握,如在图片选择器内进行截图保存,下一次打开不一定有最新图片,需要重新进行缓存图片来实现亦或是打开图片选择器时检查最新图片是否是和之前一样,不一样则重新取出,但逻辑较为麻烦
3、这里需要感谢某网友提供的方法以及组件库,使用了EGOCache三方,可以将图片缓存进磁盘,取出时通过iden来进行取图,没有则调用photokit来取图,可以快速拿到缩略图,且第一次加载也不会影响
4、尝试10000+张相册图片的压测,微信在卸载重装之后,打开相册快速翻阅,翻到底后会存在cell复用闪屏的情况,如果慢翻阅则不会,同理本次封装也会出现,但只要全部都加载过一次,也不会存在该问题

打开相册较慢的问题

原逻辑在控制器viewDidLoad中,加载相册列表、加载第一个相册(所有照片)的图片,图片较多的情况下卡主线程,打开相册用时6到8s不等,图片越多时间越长,这次也进行了优化

话不多说,直接上代码,如果要直接使用微信图片选择的朋友,可以直接cocoaPod安装

传送门,记得给star好评哈

上一篇 下一篇

猜你喜欢

热点阅读