Schreodinger

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1 //
  2 //  ViewController.m
  3 //  09-pageControl
  4 //
  5 //  Created by wangAngelo on 11/30/15.
  6 //  Copyright © 2015 angelowang. All rights reserved.
  7 //
  8 
  9 #import "ViewController.h"
 10 
 11 @interface ViewController () <UIScrollViewDelegate>
 12 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
 13 @property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
 14 @property (nonatomic, strong) NSTimer *timer;
 15 @end
 16 
 17 @implementation ViewController
 18 
 19 - (void)viewDidLoad {
 20     [super viewDidLoad];
 21     // Do any additional setup after loading the view, typically from a nib.
 22     self.scrollView.delegate = self;
 23 
 24     /**
 25      *  scrollView中图片轮播部分
 26      */
 27     CGFloat imagesW = self.scrollView.bounds.size.width;
 28     CGFloat imagesH = self.scrollView.bounds.size.height;
 29     /**
 30      *  设置图片数量和图片的总宽度
 31      */
 32     int imagesCount = 5;
 33     CGFloat totalImageWidth = imagesCount * imagesW;
 34     
 35     /**
 36      *  把每个图片的imageView加到ScrollView上
 37      */
 38     for (int i = 0; i < imagesCount; i++) {
 39         UIImageView *images = [[UIImageView alloc] init];
 40         CGFloat imagesX = i * imagesW;
 41         CGFloat imagesY = 0;
 42         images.frame = CGRectMake(imagesX, imagesY, imagesW, imagesH);
 43         images.image = [UIImage imageNamed:[NSString stringWithFormat:@"img_%02d",i + 1]];
 44         [self.scrollView addSubview:images];
 45     }
 46     /**
 47      *  设置ScrollView可以滚动的范围
 48      */
 49     self.scrollView.contentSize = CGSizeMake(totalImageWidth, 0);
 50     /**
 51      *  是否可以纵向滚动 否
 52      */
 53     self.scrollView.showsHorizontalScrollIndicator = NO;
 54     /**
 55      *  是否单页滚动
 56      */
 57     self.scrollView.pagingEnabled = YES;
 58     
 59     /**
 60      *  pageControl部分
 61      *
 62      */
 63     self.pageControl.numberOfPages = imagesCount;
 64     /**
 65      *  定时器部分
 66      *
 67      */
 68     [self addTimer];
 69 
 70 }
 71 
 72 /**
 73  *  添加定时器
 74  */
 75 - (void)addTimer {
 76     self.timer = [NSTimer scheduledTimerWithTimeInterval:2.5 target:self  selector:@selector(nextPage) userInfo:nil repeats:YES];
 77     [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
 78 }
 79 
 80 /**
 81  *  移除定时器
 82  */
 83 - (void)removeTimer {
 84     [self.timer invalidate];
 85     self.timer = nil;
 86 }
 87 
 88 #pragma mark - 代理方法
 89 
 90 - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
 91     CGFloat imagesW = self.scrollView.bounds.size.width;
 92     /**
 93      *  判断翻页状态
 94      */
 95     int page = (int)round(self.scrollView.contentOffset.x / imagesW);
 96     self.pageControl.currentPage = page;
 97 }
 98 
 99 -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
100     [self removeTimer];
101 }
102 
103 -(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
104     [self addTimer];
105 }
106 
107 - (void)nextPage {
108     
109     int page = 0;
110     if (self.pageControl.currentPage != 4) {
111         page = (int)self.pageControl.currentPage + 1;
112     } else {
113         page = 0 ;
114     }
115     CGFloat imagesW = self.scrollView.bounds.size.width;
116     CGFloat offsetX = imagesW * page;
117     [self.scrollView setContentOffset:CGPointMake(offsetX, 0) animated:YES];
118 }
119 
120 @end

 

posted on 2016-01-12 21:19  Schreodinger  阅读(362)  评论(0编辑  收藏  举报