iOS开发学习周报(八)
简介
课程名称 | IOS开发实训 | 任课老师 | 郑贵锋老师&字节跳动工程师 |
---|---|---|---|
学号 | 16340015 | 专业(方向) | 软件工程(计应) |
姓名 | 陈彬彬 | 944131226@qq.com | |
开始日期 | 2019/05/04 | 完成日期 | 2019/05/09 |
本周记录
0.概括
-
YBImageBrowser+SDWebImage
-
图片浮层浏览
1.YBImageBrowser+SDWebImage
参考:
概括:
在Feed流应用,我们需要在新闻浏览页面提供概览图以及图片浮层预览,类似于微信朋友圈点击概览图弹出图片浮层浏览器,供用户左右横滑查看图片详情。这一个功能的实现可以简单地依靠一个第三方库YBImageBrowser
,这个库使用了 YYImage
和 SDWebImage
这两个一直广泛使用的图片库。前者提供图片的编码、解码、处理和展示,后者提供网络图片资源的异步下载和缓存。
对于异步加载网络图像,SDWebImage
库的使用对比上一周(周报七)通过 NSOperationQueue
子线程来实现的方法,拥有更优越的性能和更简易的代码:
1)为Cocoa Touch框架提供一个UIImageView的分类,加载图片并进行缓存处理。
2)异步图像下载
3)异步存储器+具备自动缓存过期处理的磁盘映像缓存
4)支持GIF播放
5)支持WebP格式
6)背景图像解压缩
7)保证同一个url图片资源不被多次下载
8)保证错误url不被反复尝试下载
9)保证不会阻塞主线程
10)高性能
11)使用GCD和ARC
12)支持Arm64架构
安装:
使用 Pod
来管理项目第三方库依赖:
- 安装
cocoaPods
过程省略,详见周报(六) - 配置
Podfile
pod 'YBImageBrowser'
pod 'YYImage/WebP'
- 安装项目依赖
$ pod install
- 通过
.xsworkspace
打开项目
2.图片浮层浏览
参考:
实现:
在这个demo中,我们将使用 SDWebImage
异步加载、缓存网络图片,然后使用 YBImageBrowser
简单地展示一个图片浮层。
我们根据周报(七)刚学会的 UICollectionView
来展示网络图片的缩略图,在 ViewController
中实现 UICollectionViewDataSource
, UICollectionViewDelegate
两个协议。
当然我们先自定义自己的 UICollectionViewCell
也就是下面的 ImageViewCell
,里面只简单地包含一个 ImageView
控件,用以展示缩略图:
// ImageViewCell.h
#import <UIKit/UIKit.h>
@interface ImageViewCell : UICollectionViewCell
@property(nonatomic, strong) UIImageView *imageView;
@end
// ImageViewCell.m
#import <Foundation/Foundation.h>
#import "ImageViewCell.h"
@interface ImageViewCell()
@end
@implementation ImageViewCell
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.frame.size.width, 0, 100, 100)];
[self.contentView addSubview: self.imageView];
}
return