广告轮播器源码

1.创建容器视图

UIScrollView * scrollView = [[UIScrollView alloc] init];

[self.view addSubview:scrollView];

scrollView.frame = CGRectMake(0, 0, self.view.frame.size.width, 200);

scrollView.backgroundColor = [UIColor yellowColor];

self.scrollView = scrollView;

2.添加内容子视图

for(int i = 0; i < 5; i++)

{

UIImageView * pictImageView = [[UIImageView alloc] init];

[scrollView addSubview:pictImageView];

NSString * name = [NSString stringWithFormat:@"ad_%02d",i];

pictImageView.image = [UIImage imageNamed:name];

设置Frame

CGFloat pictW = scrollView.frame.size.width;

CGFloat pictH = scrollView.frame.size.height;

CGFloat pictX = i * pictW;//i * scrollView.frame.size.width

CGFloat pictY = 0;

pictImageView.frame = CGRectMake(pictX, pictY, pictW, pictH);

}//end for

设置contentSize,只能够横向滚动

scrollView.contentSize = CGSizeMake(5 * scrollView.frame.size.width, 0);

scrollView.showsHorizontalScrollIndicator = NO;

是否支持分页功能

scrollView.pagingEnabled = YES;

指示器,用来提示用户当前显示到的具体页面提示

UIPageControl * pageController = [[UIPageControl alloc] init];

[self.view addSubview:pageController];

pageController.frame = CGRectMake(0, 180, scrollView.frame.size.width, 20);

pageController.backgroundColor = [UIColor redColor];

设置一共有多少个提示视图(小圆点)

pageController.numberOfPages = 5;

当前指示页面的小点颜色

pageController.currentPageIndicatorTintColor = [UIColor greenColor];

其它小点颜色

pageController.pageIndicatorTintColor = [UIColor grayColor];

当前指示第几个小点上

pageController.currentPage = 0;

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    1.时时获得当前偏移量

CGFloat offSetX = scrollView.contentOffset.x;

    计算出当前滚动到的具体页数

NSInteger currentPage = (offSetX + scrollView.frame.size.width * 0.5 )/ scrollView.frame.size.width;

    2.设置pegeControler

self.pageController.currentPage = currentPage;

}

  为了防止NSTimer 产生的时间累积效果产生的屏幕视图闪动,我们在人为拖拽的时候,取消自动滚动效果

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

    取消timer功能,一旦调用了invalidate 方法之后,timer对象是不能够再从新复活

[self.timer invalidate];

清空一下timer对象

self.timer = nil;

}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

{

    重新启动timer对象

[self.timer  fire]; //调用该方法是无用的,一旦调用了invalidate是不能够再次复活的,只能够重新创建

[self createTimer];

}

- (void)createTimer

{

NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(autoScroll) userInfo:nil repeats:YES];

self.timer = timer;

    把timer对象加入到循环回路中,NSRunLoopCommonModes通信模式

[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

}

- (void)autoScroll

{

NSLog(@"开始自动滚动了");

/*

scrollView滚动效果,实际上就是改变bounds也就是改变contentOffSet某一个方向的值

当前显示在第几页 *scrollView.width

如果已经显示到最后一页,那么归0

*/

NSInteger currentPage =  self.pageController.currentPage >= 4 ? 0 : self.pageController.currentPage + 1;

CGFloat offsetX = currentPage * self.scrollView.frame.size.width;

self.scrollView.contentOffset = CGPointMake(offsetX, 0);

}

时间: 2024-09-29 15:34:33

广告轮播器源码的相关文章

JQuery实现图片轮播效果源码

======================整体结构======================== <div class="banner"> <ul class="banner-imgs"> <li class="banner-img"> <a href="#"><img src="#" alt="" /></a>

Android无限广告轮播 - 自定义BannerView

1.概述 这其实是我第一篇想写的博客,可能是因为我遇到了太多的坑,那个时候刚入行下了很多Demo发现怎么也改不动,可能是能力有限,这次就做一个具体的实现和彻底的封装. 上次讲了Android无限广告轮播-ViewPager源码分析,有了源码分析我们对ViewPager就有了一个大概的了解,那么再来封装成自定义View,就会简单许多,附视频讲解地址:http://pan.baidu.com/s/1bpqqkGn 2.效果封装 2.1 自定义BannerViewPager extends ViewP

猫猫学iOS 之广告轮播图,collectionView制作(源码)

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 源码共享:https://github.com/znycat/NYCarouselView 效果图 源代码 NYCarouselView.h // // NYCarouselView.h // 广告轮播CollectionView // // Created by IOS on 15/12/26. // Copyright ? 2015年 com.itcat.c

Android高级图片滚动控件,编写3D版的图片轮播器

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博客了,我也是深感惭愧.那么今天的这篇既然是阔别了一个多月的文章,当然要带来更加给力点的内容了,那么话不多说,赶快进入到今天的正题吧. 说 到图片轮播器,很多的Android应用中都会带有这个功能,比如说网易新闻.淘宝等.最新我们公司的一款应用也加入了这个功能,并且在图片轮播的基础上 还增加了三维立体

猫猫学iOS 之广告轮播图,collectionView制作

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 效果图 不多说,好不好先看效果,之前做过一个scrollView的轮播图,但是很局限,很多多余代码,今天猫猫重新做了一个用collectionView的流水布局做的一个,可以拿去做广告轮播,也可以做系统新特性哦,来,看下效果吧. 源码共享:https://github.com/znycat/NYCarouselView 很久很久以前就想做了.总而言之,猫猫代码有

自定义广告轮播条向右滑动出现空白

在新项目中,广告轮播条当然非常常用了,我也是挺懒的一个人,直接用了上个App中另一个哥们用的代码,用ViewPager和Timer类实现的,看着代码应该也是网上谁写的,具体已经不知道了,代码有段类似这样 Activity mActivity; // 上下文 List<View> mListViews; // 图片组 int mScrollTime = 0; Timer timer; int oldIndex = 0; int curIndex = 0; 广告轮播本身没问题,功能都可以实现,包括

UIScorllView和UIPageControl的使用实现图片轮播器

首先我们要先建一个project,选择iOS下的第一个Application 中的Single View Application 开始工作已经准备完毕现在我们进入到Main.storyboard拖控件 需要用到的控件有 UIScrollView也就是滚动的那个 UIPageControl也就是图片下面那几个小点 NSTimer就是定时器让其自动换页的 第一步:拖控件连线 在Main.storyboard拖一个UIScrollView放在屏幕上,在UIScrollView下面放一个UIPageCo

沉浸式图片轮播器 -- DDGBannerScrollView使用文档

写在前面 几乎每个app都会用到图片轮播器,而且图片轮播器也越来越高大上,沉浸式等拉高了APP的档次 ,没有一个高大上的图片轮播器,都不好意思上架. 像一些知名的app都采用了图片轮播的背景渐变色,举几个栗子:优酷的首页,喜马拉雅,蜻蜓fm,哔哩哔哩漫画等, page索引也是玩的很高大上,系统的早已满足不了了需求. 鉴于此和项目的需要,在前人的基础上,整理了一个这个库,志在简单的几句代码,就能让应用看上去高大上. github:[DDGBannerScrollView](https://gith

UISCrollView —— 图片轮播器封装实现(三)——(第三讲)

1.分析 利用xib布局,然后自定义一个UIView,解析xib,然后利用控制器传入数据,将其加载到控制器的view上展示即可 2. 程序结构 3. 代码具体实现 1>  xib文件 2>  创建类 XMGPageView,然后将其与xib文件关联,选中xib文件,然后设置下文中 " custom class " 为定义的类,让其来管理xib 1>    (如图,设置xib与类关联) 2>  XMGPageView.h 文件中,声明分页图片数组属性,及其一个快速