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];//控制器消失的时候记得停止轮播图的定时器,否则可能出现内存泄露
}

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

相关文章推荐

经验之谈—实现图片下拉放大的效果

这里我们主要是用一下,如何能保持原来的图片的宽高比来轻松的实现放大的效果,主要的是UIViewContentModeScaleAspectFill这个起的效果: 我们用tableView来展示这个效果...

iOS带有缩放效果的自动轮播图

可直接设置frame然后加载到视图上使用。 效果就是这样的,图片切换的过程中还是有卡顿,不够流畅,后续更新。 直接上代码。 .h文件包含: #import @interface CustomS...

iOS自定义UICollectionViewlayout仿英雄联盟选择皮肤立体轮播效果展示

个人感觉CollectionView过于强大,基本什么界面都能用他来完成需求,只是如果自定义Layout的时候可能性能开 销大。如果是普通的需求,他和tableView并没有多大的区别,同样都是通过d...

UIScrollView自动滚动 循环滚动视图实现

UIScrollView 实现自动滚动 循环播放的视图  其实大家对这种demo并不少见了,但是我还是想自己去动手封装一个可以在任何项目中拿来就可以使用的,自己写的代码要比粘贴复制的代码更有意义,自己...

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

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

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

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

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

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

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

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

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

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

iOS 投机流实现 无限轮播图

无限轮播图, 这种简单的功能没什么技术含量, 实现的方式也各种各样, 技术含量较高的分为: 1) UIScrollView二图流(就是两张图之间来回切换) 这个对算法的要求比较高, 一般不推荐自己写...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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