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等等)

  • 相关阅读:
    cf------(round)#1 C. Ancient Berland Circus(几何)
    cf------(round)#1 B. Spreadsheets(模拟)
    grep 精确匹配
    解决 service iptables save 报错 please try to use systemctl
    kubernetes 亲和性调度详解
    免费好用的SSH手机客户端
    axios和drf结合的增删改查
    CDH 部署 Hadoop:5.开始安装
    OpenNebula概述
    Python 3.x 引入了函数注释
  • 原文地址:https://www.cnblogs.com/lianpihou/p/UIScrollView.html
Copyright © 2011-2022 走看看