-
Notifications
You must be signed in to change notification settings - Fork 4
TiYcc/ImageBrower
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Latest commitc442869 · | ||||
Repository files navigation
该YTMultipleBrowser文件下为作者分享的多图浏览器简单封装 依赖第三库SDWebImage YTPhotoBrowseView: 使用 ------------------ 开始 ------------------ #import "YTPhotoBrowseView.h" //导入头文件 // 创建YTPhotoBrowseView类对象 YTPhotoBrowseView *photoBrowseView = [[YTPhotoBrowseView alloc]initWithFrame:frame andSetingModel:nil]; photoBrowseView.delegate = self; photoBrowseView.dataSource = self; // 调用or刷新 photoBrowseView 界面 [photoBrowseView reloadDataAtPage:page]; // 实现代理 // 多少张图片 - (NSInteger)numberOfPhotosInPhotoBrowseView:(YTPhotoBrowseView *)photoBrowseView; // page对应图片信息 - (YTPhotoInfo *)photoBrowseView:(YTPhotoBrowseView *)photoBrowseView photoInfoAtPage:(NSInteger)page; ------------------ 完 ------------------- YTPhotoBrowseView: 1.对加载gif图片内纯消耗过大做了处理。(牺牲cpu,降低内存消耗,避免内存过高报警,导致程序异常运行)(网络gif图片会加载到硬盘里) 2.通过三张图片复用来实现整个框架图片浏览,控制内存消耗过高 3.支持屏幕旋转更新内部控件布局 4.图片缩放机制,正常显示按比例显示在整个页面上,缩放过程不会被拉伸,可以放大到图片原始大小(有效的展示长图,方便浏览) 5.其他效果可以通过自己使用体会到 6.有什么不好的地方,或者需要改进的地方,甚至否定该程序有更好的方式来实现。希望能够联系我并告诉我,很是感谢,学无止境。(最下面有联系方式) 具体使用方法可以产考ViewController/MemoryViewController/SimpImageViewController ViewController 是简单的使用 MemoryViewController/SimpImageViewController 是稍微复杂点的使用 MemoryViewController是针对加载gif图片内存消耗过大做了处理,仅仅为了展示给使用者一个明确的对比。 真机(iphone6)测试:网络图片 一个界面同时加载7张gif图片 MemoryViewController(优化处理) 内存消耗 45Mb+ cpu %40 左右 SimpImageViewController(未优化) 内存消耗 180Mb+ cpu %0 左右 为何要这样处理gif图片 1,多张gif同时显示,内存会急剧升高,开发应避免多张gif图片同时加载在内存里 2,即便不显示出来,把多张gif图片加载到运行内存里,也是一件危险的事情,运行内存的消耗是要远大于gif图片真实的大小的。 3,系统UIImageView加载gif图片,gif图片包含的图片数量越多,内存消耗越高,和gif图片本身大小关系不大。 4,极端情况下,一张(图片数很多)gif图片就能让程序内存严重过高出现闪退 5,由于多种不确定性,提高cpu的消耗,来降低内存的消耗,经过大量测试这种方式可以有效 并且很好的降低程序因内存过高而出现异常和闪退。 最后: 也许这种观点不对,或者处理的方式不够好,可以进行讨论和交流,如果你有更好的方法,希望能够告知,感谢你的支持。 联系方式 Email:ycctime@icloud.com qq: 1363603076
About
此demo是一个图片浏览集成模块,支持横竖屏,放大缩小,内存已优化,能够进行多张图片进行查看,淡入浅出的动画效果。代码简单易懂,封装层次分明。
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published