• 自己写的一个图片轮播器


      1 #import "ViewController.h"
      2 
      3 @interface ViewController () <UIScrollViewDelegate>
      4 /**
      5  *  图片轮播器
      6  */
      7 @property (nonatomic ,weak  ) UIScrollView    *scrView;
      8 /**
      9  *  页面指示器
     10  */
     11 @property (nonatomic, weak  ) UIPageControl   *pgControl;
     12 /**
     13  *  计时器
     14  */
     15 @property (nonatomic, strong) NSTimer         *timer;
     16 @end
     17 
     18 @implementation ViewController
     19 - (void)viewDidLoad
     20 {
     21     [super viewDidLoad];
     22     //加载图片轮播器
     23     [self setUpScrView];
     24     //加载页面指示器
     25     [self setUpPageControl];
     26     //加载定时器
     27     [self setUpTimer];
     28 }
     29 - (void)setUpScrView
     30 {
     31     UIScrollView *scrView                  = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, 250)];
     32     scrView.alwaysBounceHorizontal         = YES;
     33     scrView.showsHorizontalScrollIndicator = NO;
     34     scrView.pagingEnabled                  = YES;
     35     scrView.contentSize                    = CGSizeMake(self.view.frame.size.width * 5, 250);
     36     _scrView                               = scrView;
     37     [self setUpImg];
     38     [self.view addSubview:_scrView];
     39 }
     40 
     41 - (void)setUpPageControl
     42 {
     43     UIPageControl *pgControl                = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 32)];
     44     pgControl.center                        = CGPointMake(CGRectGetMidX(self.view.bounds), 300);
     45     pgControl.currentPage                   = 0;
     46     pgControl.numberOfPages                 = 5;
     47     pgControl.currentPageIndicatorTintColor = [UIColor redColor];
     48     pgControl.pageIndicatorTintColor        = [UIColor greenColor];
     49     _pgControl                              = pgControl;
     50     [self.view addSubview:_pgControl];
     51 }
     52 
     53 - (void)scrollImage
     54 {
     55     NSInteger page = _pgControl.currentPage;
     56     if (page == _pgControl.numberOfPages - 1) {
     57         page = 0;
     58     } else {
     59         page ++;
     60     }
     61     CGFloat offsetX = page * _scrView.frame.size.width;
     62     [_scrView setContentOffset:CGPointMake(offsetX, 0) animated:YES];
     63 
     64     _pgControl.currentPage = page;
     65 }
     66 
     67 - (void)setUpTimer
     68 {
     69     _timer             = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(scrollImage) userInfo:nil repeats:YES];
     70     NSRunLoop *runloop = [NSRunLoop currentRunLoop];
     71     [runloop addTimer:_timer forMode:NSRunLoopCommonModes];
     72 }
     73 
     74 - (void)setUpImg
     75 {
     76     CGFloat imgW = self.view.bounds.size.width;
     77     CGFloat imgH = 250;
     78     CGFloat imgY = 0;
     79     for (int i = 0; i < 5; i ++) {
     80         CGFloat imgX = imgW * i;
     81         UIImageView *imgView = [[UIImageView alloc] init];
     82         imgView.image        = [UIImage imageNamed:[NSString stringWithFormat:@"img_%02d", i + 1]];
     83         imgView.frame        = CGRectMake(imgX, imgY, imgW, imgH);
     84         [_scrView addSubview:imgView];
     85     }
     86 }
     87 
     88 #pragma mark UIScrollView代理方法
     89 - (void)scrollViewDidScroll:(UIScrollView *)scrollView
     90 {
     91     CGFloat offsetX        = _scrView.contentOffset.x;
     92     offsetX                += _scrView.frame.size.width / 2;
     93     NSInteger page         = offsetX / _scrView.frame.size.width;
     94     _pgControl.currentPage = page;
     95 }
     96 
     97 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
     98 {
     99     [_timer invalidate];
    100     _timer = nil;
    101 }
    102 
    103 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
    104 {
    105     [self setUpTimer];
    106 }
    107 
    108 @end
  • 相关阅读:
    Django auth组件
    Django 中间件实现用户认证与IP频率限制
    Django 中间件
    Django forms组件
    Django Cookie于Session
    Django分页器
    flask之route中的参数
    Flask之endpoint错误View function mapping is overwriting an existing endpoint function: ***
    Centos6.5 安装python2.7.14
    发布django项目
  • 原文地址:https://www.cnblogs.com/xiayao/p/5262800.html
Copyright © 2020-2023  润新知