• UIScrollView


    1 UIScrollView 的使用

    1.1 UIScrollView的使用需要设置 滚动的范围、偏移量两个属性

    contentSize  、contentOffset

    1.2 接受代理和 指定代理

    UIScrollViewDelegate

    滚动过程的方法

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{

    //获取滚动视图的偏移量  

        CGPoint offset = scrollView.contentOffset;

        //如果在最后一张,此时往左滑动,跳动到第一张要执行的代码

        if (offset.x + KWidth > scrollView.contentSize.width) {

            [scrollView setContentOffset:CGPointMake(0, 0) animated:NO];

        }

        if (offset.x < 0) {

            [scrollView setContentOffset:CGPointMake(10 * KWidth, 0) animated:NO];

        }

    }//实现了连续循环滚动的效果

    滚动结束的方法

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    //和UIPageControl的结合使用

    //获取滚动视图当前的偏移量

        CGPoint offset = scrollView.contentOffset;

        //计算偏移量与屏幕宽度的关系。也就是便宜了多少倍

        NSInteger page = offset.x / KWidth;

        self.pageControl.currentPage = page - 1 < 0  ?  9 : page - 1;

    }

    1.3 换可以设置便捷回弹效果 滚动的滑块 整业翻等

    _scrollView.bounces = YES;//偏移回弹打开

    _scrollView.showsHorizontalScrollIndicator = NO;

    _ scrollView.pagingEnabled = YES;

    1.4 可以设置滚动视图的缩放效果(实现缩放效果需要把图片添加到滚动视图上面,再把滚动视图添加到大的滚动视图上面)两个滚动视图控制器都需要设置代理

    首先需要设置缩放的比例

    _scroll.minimumZoomScale = 0.5;

    _scroll.maximumZoomScale = 2.0;

    需要接收代理

    _scroll.delegate = self;

    1.5 缩放代理的实现必须要指定缩放的视图

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

        return [scrollView.subviews firstObject];//找到的是 imageView

    }

    //1 滚动过程中触发的方法

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{

        NSLog(@"正在滚动");

    //2 即将开始拖动,此时滚动视图即将加速

    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{

        NSLog(@"即将开始拖拽");

    //3 拖动结束,即将进入减速

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

        NSLog(@"拖拽结束");

    //4 减速开始

    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{

        NSLog(@"即将开始减速");

    //5 减速结束

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

        NSLog(@"减速停止");    

        for (UIScrollView *sView in scrollView.subviews) {  //从滚动视图中找到 小的滚动视图 并把它的比例设置为初始值

            if ([sView isKindOfClass:[UIScrollView class]]) {

                sView.zoomScale = 1.0;

             }

         }

    //正在缩放

    - (void)scrollViewDidZoom:(UIScrollView *)scrollView{    

        UIImageView *imageView = [scrollView.subviews firstObject];//找到scrollView 的imageView 的视图。

        if (scrollView.zoomScale <= 1.0) {  //判断条件是<= 确保在缩小 和 恢复为初始比例1.0 是都是在屏幕的中心位置缩放变化的

            imageView.center = CGPointMake(KWidth / 2, KHeight / 2);//实现的效果是以中心位置进行缩放

        }

    //缩放结束执行的方法

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

        NSLog(@"%@",NSStringFromCGSize(scrollView.contentSize));

    }

    //scrollView 的使用 要注意代理的接受 指定代理人,另外对于滚动的方法 和 缩放的方法的使用  要选择合适的方法使用。避免混淆

  • 相关阅读:
    冲刺计划安排
    团队作业7——Alpha冲刺之事后诸葛亮
    团队作业6--展示博客(Alpha版本)
    团队作业5——测试与发布(Alpha版本)
    团队项目汇总
    【Java】五种常见排序之------------------快速排序
    【Java】五种常见排序之----------------归并排序
    【Java】五种常见排序之----------------------插入排序
    【Java】五种常见排序之---------选择排序
    【Java】五种常见排序之-----------冒泡排序
  • 原文地址:https://www.cnblogs.com/jiurong001/p/5186482.html
Copyright © 2020-2023  润新知