• ##DAY6 UIScrollView


    ##DAY6 UIScrollView

    #pragma mark ———————UIScrollView———————————

    属性:

    contentSize 内容滚动范围

    contentOffset 滚动视图的偏移量,如果不设置,默认开始是偏移(0,0)

    contentInset 设置保留区域,在动态效果结束后,会在开头或结尾保留以下设置的值,UIEdgeInsetsMake(60, 0, 80, 0)

    bounces 关闭滚动视图的回弹效果,默认开启

    pagingEnabled 设置整页滚动,分页属性,是按照UIScrollView的frame的宽度分页的。

    scrollEnabled 设置是否能滚动,默认YES

    showsHorizontalScrollIndicator 关闭横向显示条

    showsVerticalScrollIndicator 关闭竖向滚动条

    tag tag值

    delegate 设置滚动视图的代理

    /*

     如果想实现滚动视图的缩放功能,必须指定缩放的视图以及缩放的比例

     指定缩放视图需要实现的代理方法,指定缩放比例,是为滚动设置缩放比例

     */

    minimumZoomScale 最小缩放比例

    maximumZoomScale 最大缩放比例

    zoomScale 当前比例

    代理中监控滚动的方法:

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

    scrollViewDidScroll:

    //即将开始进行拖拽,此时的滚动视图即将加速

    scrollViewWillBeginDragging:

    //结束拖拽的方法,不再进行加速

    scrollViewDidEndDragging:willDecelerate:

    //即将开始减速

    scrollViewWillBeginDecelerating:

    //结束减速,停止滚动

    scrollViewDidEndDecelerating:

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

        NSLog(@"结束减速");

        // 先从负责滚动的⼤scrollView找到他的⼦视图

        for (UIScrollView *sView in scrollView.subviews){

            // 在根据⼦类的对象类型进⾏判断

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

                // 把视图的尺⼨恢复到原有尺⼨

                sView.zoomScale = 1.0;

            }

        }

    }

    代理中监控视图缩放的方法:

    //指定缩放视图

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

        return [scrollView.subviews firstObject];

        //scrollView上还有两个子视图,横向指示器和纵向指示器

    }

    //结束缩放

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

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

    }

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

        UIImageView *imageView = [scrollView.subviews firstObject];

        if (scrollView.zoomBouncing <= 1.0) {

            imageView.center = CGPointMake(kWidth / 2, kHeight / 2);

        }

    }

    #pragma mark -----pageControl与scrollView关联的方法,两个都要写----------

    #pragma mark -----scrollView的方法----------

    //在滚动视图停止滚动时,改变pageControl上面点的位置

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

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

        CGPoint offset = scrollView.contentOffset;

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

        NSInteger page = offset.x / kWidth;

        //赋值

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

    }

    #pragma mark -----pageControl的触发事件的方法----------

    - (void)click:(UIPageControl *)page{

        self.scrollView.contentOffset = CGPointMake(kWidth * (page.currentPage + 1), 0);

    }

  • 相关阅读:
    23种设计模式
    doraemon的python Flask框架 websocket和redis
    doraemon的python Flask框架 路由和配置
    doraemon的python Flask框架 安装以及基础应用
    doraemon的python centos的入门(五)用户和用户组权限
    doraemon的python centos的入门(四)查询和压缩文件、文件夹
    doraemon的python centos的入门(三)vim
    doraemon的python centos的入门(二)文件目录操作
    doraemon的python centos的入门(一)增删改查命令
    doraemon的python CRM项目中公户与私户转换、搜索条件的应用
  • 原文地址:https://www.cnblogs.com/chongyu/p/5192431.html
Copyright © 2020-2023  润新知