zoukankan      html  css  js  c++  java
  • 利用UIScrollView实现一个简单的图片轮播

    简单图片轮播的实现
    分析:
    首先先创建一个UIScrollView;
    在UIScrollView添加需要轮播的图片
    UIScrollView开启分页功能
    添加一个定时器,当时间到后就让UIScrollView移动一页,并且一个定时器一直循环开启;
    注意:几个小细节
    ①这个定时器在用户触摸UIScrollView时候,要移除定时器,在手离开UIScrollView的时候再次开启。为什么要这么做勒?因为当用户在滑动的时候,要是你的定时器开在开启状态,则当用户停止滑动,手指离开UIScrollView时,则个页面会连续滑动几次,因为你的定时器在后台一只跑着的。代码如下(注意控制器需要尊周UIScrollView的代理协议,这样子控制器才能监控用户什么时候滑动和停止滑动离开屏幕的)
    
    // 当用户手指离开scrollView的时候,添加一个轮播的定时器
    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
    {
        [self addLunBoTimer];
    }
    
    // 添加一个timer
    - (void)addLunBoTimer
    {
        self.timer = [NSTimer timerWithTimeInterval:1.5 target:self selector:@selector(addLunBoPage)  userInfo:nil repeats:YES];
        
        [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
        
    }
    
    // 当手开始滑动时移除定时器
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
    {
        [self removeLunBoTimer];
    }
    
    // 增加一个页面的对象方法,定时器会每隔一段时间调用一次,实现自动轮播
    - (void)addLunBoPage
    {
        // 取出当前页面
        int currentPage = self.page.currentPage;
        
        if (currentPage >=4) {
            
            currentPage = 0;
        }
        else
        {
            currentPage ++;
        }
        [UIView animateWithDuration:0.3 animations:^{
         
                self.lunBoScrolView.contentOffset = CGPointMake(self.lunBoScrolView.frame.size.width * currentPage, 0);
        }];
    
    }

    要想实现UIScrollView的滑动必须要设置以下三步,才能实现
    1>设置本身的frame
    2>设置contentSize(可滑动范围)
    3>添加需要滑动的View(比如Button imageView等等)

  • 相关阅读:
    01-SCOTT-SQL建表语句
    面试小题
    Swagger2使用API
    Elasticsearch单机安装_集群搭建_索引基本操作_Head插件安装与基本操作_ik分词器配置_logstash实现数据同步_教程
    45个非常有用的 Oracle 查询语句小结
    oracle获取定时时间段
    彻底理解webservice SOAP WSDL
    MySQL 1045登录失败
    quartz定时任务时间设置
    map 遍历的四种方式
  • 原文地址:https://www.cnblogs.com/lianpihou/p/UIScrollView.html
Copyright © 2011-2022 走看看