代码库> 滚动视图> 3分钟快捷创建高性能轮播图
3分钟快捷创建高性能轮播图
关注
上传者:Travelcolor 分类:滚动视图(Scrollview)
查看次数:1870 下载次数:215
上传时间:2018-09-02 大小:437 B
概要:封装轮播图,混合加载网络图片和本地图片,实现UIImageView、UILabel的复用,使用内存缓存,磁盘缓存、多线程和runloop解决UI卡顿,定时器等问题。暂时未发现有任何bug,如果您遇到bug希望你能Issues我。

SLBannerViewDemo:https://github.com/TravelColor/SLBannerView
个人邮箱:songleitravel@163.com
****************************
//支持cocoapods
pod 'SLBannerView'
或者
pod 'SLBannerView', '~> 1.0.2'
****************************
思路及改进说明:
1. 构建基本UI
1.1 封装
2. 设置scrollView代理
3. 添加scrollView的image
4. 分页
5. 定时器滚动起来
6. 定时器线程阻塞问题:
原因:NSTimer 默认是放到系统的主线程的,当用户操作其他主线程任务时,会造成NSTimer的线程阻塞,用户停止其他操作时又会重启NSTimer
解决:设置timer在runloop中模式为CommonModes
7. 解决轮播图片过多的性能问题,循环重用ImageView
8. 添加xib创建方法
9. 巧用代理UIScrollViewDelegate,scrollViewDidScroll:定位当前正确的页数,找出最中间的哪个图片控件
10. 用SLBannerViewDelegate实现监听点击事件
11. 利用继承、内存缓存、磁盘缓存、异步并行多线程解决重复下载图片,UI不流畅的问题。先检查内存、磁盘中有没有,没有再下载,有就直接使用。
12. 修复bug,让其默认从第0页开始,给self.pageCtrl.currentPage = 0;,[imageView asynSetImage:self.slImages[0]];
13. 修复bug, 让其加载完成,就展示第二个imageView: self.scrollView.contentOffset = CGPointMake(BannerViewWidth, 0);
收藏
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0


本周热门下载
综合评论
  • 滑动选择一列后不松开手指反选回去,最下面那个为何没有取消,这样不是有问题吗
  • 滑动选择一列后不松开手指反选回去,最下面那个为何没有取消,这样不是有问题吗
  • 你好,从上到下滑动选中一列后,不松开手指继续从下往上反选回去,最下面的那个cell没有取消掉,你有办...
    范麦子 评论了 滑动选词
  • 如何结合数据库来实现交互学习?
    18087758839 评论了 swiftTableViewIndex
  • 此文非常好!如何实现按字母检索?
         ...
    18087758839 评论了 swiftTableViewIndex
  • xcode10.3不能运行
    18087758839 评论了 棋类游戏对战代码实现
提示
sina weixin mail 回到顶部