iOS无限轮播图片的实现-仅仅用了三个UIImageView实现多图的轮播效果

   前言

           以前开发程序的时候需要使用图片轮播的效果,最开始的想法就是使用多少张图片就创建多少个UIImageView贴上去,当时确实也是这么做的,但是图片播放到最后一张的时候手动是没法直接切换到第一张图片的,这就给用户带来不好的体验,而且UIImageView创建多了,对性能也是有很大的影响的,所以潜心研究了下。

         啥也不多说了,直接上代码:https://github.com/zengqingf/ZQFCycleView 

原理:

      其实原理也很简单,就是放上三个UIImageView,默认的显示的是中间的UIImageView展示,当用户划到下一张图片的临界点时候,偷偷的切换回中间的UIImageView展示,但是UIImage却全部换掉了,也就是说用户永远看到的是中间的UIImageView,只是内容不同而已。如果你也觉得demo对你有用的话,千万不要忘记star哦!



      纯代码写出来的无限轮播图,可以轻松的使用第三方比如SDImage等异步加载轮播图上的图片


      作者的新浪微博是 @爱编程的小福子 记得关注我哦!


   开始使用ZQFCycleView

   创建轮播图

self.cycleView = [[ZQFCycleView alloc] initWithFrame:CGRectMake(0, 20, width, 180) delegate:self];
[self.view addSubview:_cycleView];
     实现代理方法
//返回图片的个数
- (NSInteger)countOfCycleView:(ZQFCycleView *)cycleView{
    return self.dataArr.count;
}
//设置imageview
- (void)cycleView:(ZQFCycleView *)cycleView willDisplayImageView:(UIImageView *)imageView index:(NSInteger)index{
    //如果需要网络加载,这里可以使用第三方,比如SDImage等等
    imageView.image = self.dataArr[index];
}
//滑动停止的时候显示标签
- (void)cycleView:(ZQFCycleView *)cycleView didDisplayTitleLabel:(UILabel *)titleLabel index:(NSInteger)index{
    titleLabel.text = [NSString stringWithFormat:@"当前的索引是:%ld", index];
}
//点击触发的
- (void)cycleView:(ZQFCycleView *)cycleView didTouchImageView:(UIImageView *)imageView  titleLabel:(UILabel *)titleLabel index:(NSInteger)index{
    NSLog(@"%@", [NSString stringWithFormat:@"当前点击的是:%ld", index]);
}
     开始播放
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.cycleView startPlayWithTimeInterval:5];//轮播图开始播放
}
      停止播放
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.cycleView stopPlay];//控制器消失的时候记得停止轮播图的定时器,否则可能出现内存泄露
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值