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];
        
    }

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

  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/hero11223/p/7467255.html
Copyright © 2011-2022 走看看