项目介绍:
KNBillboardScrollView这是一个广告栏。实现无限循环播放图片,获取网络图片,实现本地存储。 接入了YYimage这个第三方库解决播放gif内存爆表的问题 下载地址: https://github.com/krystalName/KNBillboardScrollView
使用前。 请接入YYImage. 不然会报错。 gif图片处理用的是YYImage . 很好解决了内存爆炸的问题
一张效果图
讲解一点点实现说明. (需要了解详情。 请下载代码到本地观看)
- 首先。感谢YYImage 这个库。 解决了我使用gif 占用过多内存的问题!
- 做无限循环播放的话。需要一个scrollView. 和uiimageView,还有pageControll
- 只放两张图片。滑动的时候。更换图片。这样性能上面更佳优化。从而达到更佳的体验效果
- 没有网络的时候。首先我会将一张占位图放到里面。做默认显示
- 没有设置titls 的时候。我会隐藏下面的图片说明。
- 如果图片总数为1张的时候。 pageControll我会设置为隐藏
- 如果标签总数比图片总数少的时候。我会设置空字符串。
- 使用队列下载图片。保证广告栏使用的流畅性
- 获取到网络图片。是一个NSSTRING 类型。转换成data类型。再转换成YYImage. 保存到本地文件夹。下次进来直接从文件夹中找。 当url不同时候。重新下载 缓存默认是打开的。 可以设置关闭。 (不过每次都要下载。 所以建议打开缓存
———-
.首先pod ‘YYImage’获取本地图片的时候。 使用[YYImage imageNamed""] 作为创建数组的参数
使用代码
- //定义两个数组。
- NSArray *imageArray = @[
- [YYImage imageNamed:@"3.jpg"],
- @"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1510747788301&di=1265b6a44927172a90f3bebcf088ab02&imgtype=0&src=http%3A%2F%2Fh.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2F5243fbf2b2119313373b1edd6f380cd791238d67.jpg",
- [YYImage imageNamed:@"2.gif"],
- @"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1510747412310&di=308b1b2e2d6ccb6a35796275fc185eaf&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01f90e593a4ad4a8012193a3dcf03d.gif"
- ];
- NSArray *descArray = @[@"本地看星星",@"网络图片",@"本地gif图片",@"网络gif图片"];
- //创建广告栏
- _bollboadrView = [[KNBillboadrView alloc]initKNBillboadrViewWithFrame:CGRectMake(0, 50, [UIScreen mainScreen].bounds.size.width, 200) andImageArray:imageArray andDescArray:descArray andplaceholdImage:[UIImage imageNamed:@"KNBilboardDefalutImge.png"]];
- [_bollboadrView setPageColor:[UIColor redColor] andCurrentPageColor:[UIColor whiteColor]];
- //设置代理
- _bollboadrView.delegate = self;
- //设置分页控件的位置,默认为PositionBottomCenter
- _bollboadrView.KNPageCotrollPostion = KNPostionBottomLeft;
- //设置动画
- _bollboadrView.KNChangeMode = KNChangeModeFade;
- // 设置滑动时gif停止播放
- _bollboadrView.gifPlayMode = KNGifPlayModePauseWhenScroll;
- [self.view addSubview:_bollboadrView];
复制代码