zoukankan      html  css  js  c++  java
  • ios开发之 -- 自动轮播图创建

    这里是oc版本的,简单记录下:

    具体代码如下:

    1,准备

    #define FRAME [[UIScreen mainScreen] bounds]
    #define WIDTH  FRAME.size.width
    #define HEIGHT FRAME.size.height

    2,具体实现

     //scrollview的添加
        _bigScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 20, WIDTH, HEIGHT)];
        _bigScrollView.showsHorizontalScrollIndicator = NO;
        _bigScrollView.contentSize = CGSizeMake(WIDTH *6, 0);
        _bigScrollView.pagingEnabled = YES;
        _bigScrollView.bounces = NO;
        _bigScrollView.delegate = self;
        [self.view addSubview:_bigScrollView];
        
        //图片内容的添加
        for ( int i = 0; i<6; i++) {
            UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i *WIDTH, 0, WIDTH, HEIGHT)];
            imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]];
            [_bigScrollView addSubview:imageView];
        }
        
        //pagecontrol的创建
        _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, WIDTH, 40)] ;
        _pageControl.center = CGPointMake(_bigScrollView.center.x, _bigScrollView.center.y);
        _pageControl.numberOfPages = 6;
        _pageControl.currentPage = 0;
        _pageControl.pageIndicatorTintColor = [UIColor blueColor];
        _pageControl.currentPageIndicatorTintColor =[UIColor redColor];
        [self.view addSubview:_pageControl];
        [_pageControl addTarget:self action:@selector(pageControllerClick) forControlEvents:UIControlEventValueChanged];
        
        //定时器的创建
        _timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

    3,响应方法的实现

    -(void)pageControllerClick
    {
        [_bigScrollView setContentOffset:CGPointMake(_pageControl.currentPage*320, 0) animated:YES];
    }
    
    //在scrollview开始手动滑动的时候
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
    {
        [_timer setFireDate:[NSDate distantFuture]];
    }
    
    //在scrollview添加一个延迟方法
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    {
        
        _pageControl.currentPage = _bigScrollView.contentOffset.x/WIDTH;
        [self performSelector:@selector(disPast) withObject:nil afterDelay:2];//延迟方法
        
    }
    
    //启动定时器
    -(void)disPast
    {
        [_timer setFireDate:[NSDate distantPast]];
    }
    
    static int count=1;
    
    //定时器的具体响应方法
    -(void)onTimer
    {
        _pageControl.currentPage+=count;
        if (_pageControl.currentPage==_pageControl.numberOfPages-1||_pageControl.currentPage==0)
        {
            count=-count;
        };
        [_bigScrollView setContentOffset:CGPointMake(_pageControl.currentPage*WIDTH, 0) animated:YES];
        
    }

    效果图就不加了,这里仅做记录用!

  • 相关阅读:
    第二次上机
    第二次作业
    第一次上机
    第一次作业
    第3次上机作业
    第四周作业
    第二次上机作业(第四周)
    第三周作业
    第一次上机作业
    第一次JAVA作业
  • 原文地址:https://www.cnblogs.com/hero11223/p/7467255.html
Copyright © 2011-2022 走看看