zoukankan      html  css  js  c++  java
  • iosUIScrollView以及UIPageControl的基本使用以及所有代理方法

    //创建ScrollView的方法

    -(void)createScrollView

    {

        UIScrollView *sv = [[UIScrollView alloc]initWithFrame:CGRectMake(5, 5, self.view.frame.size.width - 10, self.view.frame.size.height-10)];

        //w代表sv.frame的宽度

        CGFloat w = self.view.frame.size.width - 10;

        //滑动的size的设置

        //宽度 如果要横着滑动设置大于sv.frame的宽度

        sv.contentSize = CGSizeMake(3*w, sv.frame.size.height-10);

        //获得三个图放到UIImageView

        for (int i =0; i<3; i++)

        {

            //获得三张图

            UIImage*image =[UIImage imageNamed:[NSString stringWithFormat:@"43_%d.jpg",i+1]];

            //三张图放到imageView上去

            UIImageView *iv = [[UIImageView alloc]initWithImage:image];

            //设定imageView的位置

            iv.frame = CGRectMake(i*w, 0, w, self.view.frame.size.height-10);

           

    //        iv.userInteractionEnabled = YES;

            //iv放到父视图 ScrollView上面去

            [sv addSubview:iv];

        }

        //水平滑动指示条

        sv.showsHorizontalScrollIndicator = NO;

        //垂直滑动指示条

        sv.showsVerticalScrollIndicator = NO;

        //设置按页滑动 page

      //  sv.pagingEnabled = YES;

        //弹性设置

        sv.bounces = NO;

        

        sv.userInteractionEnabled = YES;

        //自带放大 缩小 option 

        //默认不自己放大缩小

        //设置放大最大的倍数

        sv.maximumZoomScale = 2;

        //设置最小缩小到多大

        sv.minimumZoomScale = 0.5;

        

        //设置代理

        sv.delegate = self;

        

        //要不要返回顶部

        sv.scrollsToTop = YES;

        //添加背景色

        sv.backgroundColor = [UIColor redColor];

        

        //添加到主界面

        [self.view addSubview:sv];

        

        //

        UIPageControl *pageC = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 0, 200, 40)];

        pageC.center=CGPointMake(150,300);

        pageC.numberOfPages = 10;

        pageC.currentPage =2;

        pageC.tag = 200;

        pageC.currentPageIndicatorTintColor = [UIColor greenColor];

        [pageC addTarget:self action:@selector(pageC:) forControlEvents:UIControlEventValueChanged];

        pageC.pageIndicatorTintColor = [UIColor blackColor];

        pageC.backgroundColor = [UIColor redColor];

        [self.view addSubview:pageC];

    }

    #pragma mark -delegate

    //控制放缩 代理方法

    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

    {

        //使得所有的界面都可以进行放缩

        return scrollView.subviews[0];

    }

    //已经滑动

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView

    {

        NSLog(@"开始滑动之后 执行的方法");

        NSInteger index = scrollView.contentOffset.x /scrollView.frame.size.width;

        UIPageControl *pc =(UIPageControl*) [self.view viewWithTag:200];

        pc.currentPage =index;

        

    }

    //已经放缩

    - (void)scrollViewDidZoom:(UIScrollView *)scrollView

    {

        NSLog(@"放缩之后 执行的方法");

    }

    //开始拖动的方法

    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

    {

        NSLog(@"即将滑动的状态 指头轻轻一划");

    }

    // called on finger up if the user dragged. velocity is in points/millisecond. targetContentOffset may be changed to adjust where the scroll view comes to rest

    - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset

    {

        //scrollview就是当前的scrollview

        //velocity加速度

        //offset 移动

        NSLog(@"即将结束滑动,手指移开 惯性还在滑的时候");

    }

    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

    {

        NSLog(@"已经结束滑动");

    }

    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

    {

        NSLog(@"减速");

    }

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

    {

        NSLog(@"减速完成 和滑动结束 状态基本一致");

    }

    - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

    {

        NSLog(@"结束滑动的动画");

    }

    //- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;     // return a view that will be scaled. if delegate returns nil, nothing happens

    - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view

    {

        //

        bigSmallV = view;

        NSLog(@"即将开始缩放");

    }

    - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale

    {

        NSLog(@"已经结束缩放");

    }

    - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView

    {

        NSLog(@"返回是否可以滑动到顶部");

        //返回YES表示可以滑动到顶部 返回No表示不可以滑动到顶部

        return YES;

    }

    - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView

    {

        NSLog(@"已经返回到顶部");

    }

    #pragma mark - delegate

    -(void)pageC:(UIPageControl *)pc

    {

       

    }

  • 相关阅读:
    Golang Channel用法简编
    一个有关Golang变量作用域的坑
    Goroutine是如何工作的
    Go语言是如何处理栈的
    Go与C语言的互操作
    Lua虚拟机初始化
    lua 函数调用 -- 闭包详解和C调用
    c++对象导出到lua
    nginx缓存设置proxy_cache
    golang中map并发读写问题及解决方法
  • 原文地址:https://www.cnblogs.com/sunfuyou/p/5919015.html
Copyright © 2011-2022 走看看