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

原创 2015年11月17日 16:14:11

   前言

          以前开发程序的时候需要使用图片轮播的效果,最开始的想法就是使用多少张图片就创建多少个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];//控制器消失的时候记得停止轮播图的定时器,否则可能出现内存泄露
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用GCD处理几个线程之间的依赖关系。

有时候我们在开发过程中,会有这样的需求,a任务开始执行的前提是b任务执行完成,c任务开始执行需要等a、b两个异步任务完成,即a依赖于b,c又依赖a,这种需求我们可以使用的GCD来处理。...

Runtime-动态创建类添加属性和方法

- (void)createClass { Class MyClass = objc_allocateClassPair([NSObject class], "myclass", 0); ...

【学习ios之路:UI系列】实现轮播图效果(UIImageView,UIScrollView,UIPageControl,NSTimer相结合)

实现效果,在不点击的情况下,自定滚动,点击时,停止.如下图 部分代码如下: //调用NSTimer方法,自定计时 - (void)autoScroll { self.timer = [NS...
  • ZFX5130
  • ZFX5130
  • 2015年01月29日 21:15
  • 1425

UIScrollView,UIPageControl,UIImageView 实现图片轮播的效果

从图中可以看到这个界面是由UIImageView 和 UITableView 组合而成。在这里UITableView的内容不作为本次讲解的重点,如果对UITableView的使用有疑问的,可以留言给我...
  • iOSbird
  • iOSbird
  • 2016年01月06日 15:53
  • 227

安卓实现广告栏图片无限轮播播放效果

//经常在安卓app中页面上方放置一个广告栏,用到的无限轮播代码: public class MainActivity extends Activity { // 广告控件 private My...

viewpager实现画廊(中间图片全部显示,左右显示一部分b布局)无限轮播效果

一、布局 xml version="1.0" encoding="utf-8"?> RelativeLayout xmlns:android="http://schemas.android.co...

iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView

iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView

iOS -- 用collectionView实现图片的无限轮播

用collectionView来实现轮播的用途不仅只是图片还可以用在文字广告热点的轮播。当然还有其他的方法无线轮播最重要的当然就是要实现最后一张和第一张的无缝切换。网上的demo大多都用了很多组带着侥...

iOS开发笔记6:图片轮播及其无限循环效果

m 平时APP中的广告位或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是S...

iOS开发笔记6:图片轮播及其无限循环效果,ios笔记

平时APP中的广告位或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是Scro...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS无限轮播图片的实现-仅仅用了三个UIImageView实现多图的轮播效果
举报原因:
原因补充:

(最多只允许输入30个字)