添加图片轮播器

//当一个对象从xib中创建初始化完毕的时候就会调用一次
-(void)awakeFromNib{
    CGFloat imageH=self.scrollView.frame.size.height;
    CGFloat imageW=self.scrollView.frame.size.width;
    CGFloat imageY=0;
    for (int i=0; i<imageCount; i++) {
        UIImageView *imageView=[[UIImageView alloc]init];
        CGFloat imageX=i*imageW;
        NSString *name=[NSString stringWithFormat:@"ad_0%i",i];
        imageView.image=[UIImage imageNamed:name];
        imageView.frame=CGRectMake(imageX, imageY, imageW, imageH);
        [self.scrollView addSubview:imageView];
    }
    CGFloat contentSize=imageW*imageCount;
    self.scrollView.contentSize=CGSizeMake(contentSize, 0);
    self.scrollView.pagingEnabled=YES;
    self.pageControl.numberOfPages=imageCount;
    self.scrollView.showsHorizontalScrollIndicator=NO;
    [self addTimer];
}
#pragma mark 添加定时器
-(void)addTimer{
    self.timer=[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
#pragma mark 移除定时器
-(void)removeTimer{
    [self.timer invalidate];
    self.timer=nil;
}
#pragma mark 下一个图片
-(void)nextImage{
    //增加pageControl的页码
    int page=0;
    if (self.pageControl.currentPage==imageCount-1) {
        page=0;
    }else{
        page=self.pageControl.currentPage+1;
    }
    //计算imagescrollView滚动的位置
    CGFloat offsetX=page*self.imagescrollView.frame.size.width;
    CGPoint offset=CGPointMake(offsetX, 0);
    [self.imagescrollView  setContentOffset:offset animated:YES];
}
#pragma mark 代理方法(代理方法非常重要,这个方法关联着pageControl)
-(void)scrollViewDidScroll:(UIScrollView *)imagescrollView{
    //根据imagescrollView滚动的位置决定pageControl显示第几页
    CGFloat scrollW=imagescrollView.frame.size.width;
    int page=(imagescrollView.contentOffset.x+scrollW*0.5)/scrollW;
    self.pageControl.currentPage=page;
}
-(void)scrollViewWillBeginDragging:(UIScrollView *)imagescrollView{
    //停止定时器
    [self removeTimer];
}
-(void)scrollViewDidEndDragging:(UIScrollView *)imagescrollView willDecelerate:(BOOL)decelerate{
    //开启定时器
    [self addTimer];
}
时间: 2024-10-09 19:00:08

添加图片轮播器的相关文章

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

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

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

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

1. 所用知识点 1> UIScrollView的基本属性,和UIPageControl设置,还有就是要用到NSTimer来定时实现UIScrollView的图片轮播 2> NSTimer简单介绍: 2.1  NSTimer叫做“定时器”,它的作用如下 * 在指定的时间执行指定的任务 * 每隔一段时间执行指定的任务 2.2  NSTimer简单使用: 1> 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NST

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

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

ios开发图片轮播器以及定时器小问题

一:图片轮播器效果如图:能实现自动轮播,到最后一页时,轮播回来,可以实现拖拽滚动 二:代码: 1 #import "ViewController.h" 2 static CGFloat const imageCount = 5; 3 @interface ViewController ()<UIScrollViewDelegate> 4 /*scrollView*/ 5 @property (nonatomic,weak)UIScrollView *scroll; 6 /*

iOS开发 - UIPageControl实现分页图片轮播器

分页相关属性 只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示 一般会配合UIPageControl增强分页效果,UIPageControl常用属性如下 一共有多少页 @property(nonatomic) NSInteger numberOfPages; 当前显示的页码 @property(nonatomic) NSInteger currentPage; 只有一页时,是否需要隐藏页码指示器 @

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

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

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

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

图片轮播器

? 1 SB里只需要两个控件: UIScrollView UIPageControl ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 7