zoukankan      html  css  js  c++  java
  • UIScrollView  和  UIPageControl  控件整理

    //UIScrollView是可以滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能。
    //UIScrollView是所有滚动视图的基类。以后的UITableView,UITextView等视图都是继承于该类。
    //使用场景:显示不下(单张大图);内容太多(图文混排);滚动头条(图片);相册等
    UIScrollView核心功能
    //UIScrollview主要专长于两个方面:
    //滚动:contentSize大于frame.size的时候,能够滚动。
    //缩放:自带缩放,可以指定缩放倍数。
     
    /*
        UIScrollView做自动布局
     
        1.首先要确定UIScrollView滚动范围,如果不确定,只要添加控件就会把错
        2.拖入一个view,让这个view确定UIScrollView滚动范围,宽高都要确定
         2.1 UIScrollView水平滚动区域 view的左右两边间距 + view宽度
         2.2 UIScrollView垂直滚动区域 view的上下两边间距 + view高度
     
        注意:如果UIScrollView滚动区域,已经确定了,就不能在弄一个view去确定
     
     */
     
    UIScrollView的属性总结
        属性 作用
        CGPoint contentOffSet         监控目前滚动的位置
        CGSize  contentSize                              滚动范围的大小
        UIEdgeInsets contentInset     视图在scrollView中的位置
        id<UIScrollerViewDelegate>delegate    设置协议
        BOOL directionalLockEnabled      指定控件是否只能在一个方向上滚动
        BOOL bounces                     控制控件遇到边框是否反弹
        BOOL alwaysBounceVertical        控制垂直方向遇到边框是否反弹
        BOOL alwaysBounceHorizontal      控制水平方向遇到边框是否反弹
        BOOL pagingEnabled               控制控件是否整页翻动
        BOOL scrollEnabled              控制控件是否能滚动
        BOOL showsHorizontalScrollIndicator    控制是否显示水平方向的滚动条
        BOOL showsVerticalScrollIndicator     控制是否显示垂直方向的滚动条
        UIEdgeInsets scrollIndicatorInsets     指定滚动条在scrollerView中的位置
        UIScrollViewIndicatorStyleindicatorStyle    设定滚动条的样式
        float decelerationRate        改变scrollerView的减速点位置
        BOOL tracking               监控当前目标是否正在被跟踪
        BOOL dragging             监控当前目标是否正在被拖拽
        BOOL decelerating           监控当前目标是否正在减速
        BOOL delaysContentTouches     控制视图是否延时调用开始滚动的方法
        BOOL canCancelContentTouches   控制控件是否接触取消touch的事件
        float minimumZoomScale      缩小的最小比例
        float maximumZoomScale    放大的最大比例
        float zoomScale        设置变化比例
        BOOL bouncesZoom      控制缩放的时候是否会反弹
        BOOL zooming          判断控件的大小是否正在改变
        BOOL zoomBouncing      判断是否正在进行缩放反弹
        BOOL scrollsToTop      控制控件滚动到顶部
       
        这里把UIScrollView的几个要点总结下:
       
        从你的手指touch屏幕开始,scrollView开始一个timer,如果:
       
        1.  150ms内如果你的手指没有任何动作,消息就会传给subView。
       
        2.  150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView,这里就是产生问题二的原因。
       
        3. 150ms内手指没有滑动,scrollView将消息传给subView,但是之后手指开始滑动,scrollView传送touchesCancelled消息给subView,然后开始滚动。
       
        观察下tableView的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableView开始滚动,高亮取消。
        
        delaysContentTouches的作用:
       
        这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。
        
        cancelsTouches的作用:
       
        这个标准默认为YES,如果设置为NO,这消息一旦传递给subView,这scroll事件不会再发生。
     
    UIScrollView滚动相关属性
    contentSize              //定义内容区域大小,决定是否能够滑动
    contentOffset    //视图左上角距离坐标原点的偏移量
    scrollsToTop      //滑动到顶部(点状态条的时候)
    pagingEnabled     //是否整屏翻动
    bounces           //边界是否回弹
    scrollEnabled     //是否能够滚动
    showsHorizontalScrollIndicator //控制是否显示水平方向的滚动条
    showVerticalScrollIndicator   //控制是否显示垂直方向的滚动条
    alwaysBounceVertical     //控制垂直方向遇到边框是否反弹
    alwaysBounceHorizontal   //控制水平方向遇到边框是否反弹

    UIScrollView缩放相关属性
    minimumZoomScale  //  缩小的最小比例
    maximumZoomScale   //放大的最大比例
    zoomScale                  //设置变化比例
    zooming                      //判断是否正在进行缩放反弹
    bouncesZoom             //控制缩放的时候是否会反弹
    要实现缩放,还需要实现delegate,指定缩放的视图是谁.

    二、UIScrollView的常用代理方法

    UIScrollView滚动代理方法
    UIScrollView缩放代理方法
     
    三、UIPageControl的使用
    UIPageControl与UILabel相似
    用于指示当前第几页(代码)
    通常与UIScrollView配合使用
    currentPage //当前页
    numberOfPages   //指定页面的个数
    //UIPageControl从类名中可以看出,其父类是UIControl 。
    //所以可以像button一样添加事件,只不过事件触发使用的不是UIControlEventsTouchUpInside而是UIControlEventsValueChanged。

    四、UIPageControl与UIScrollView的结合使用
    //通常在Scrollview滚动的时候修改pageControl的currentPage
    //使用场景:
    //引导页
    //首页的轮播图等

    总结
    //contentSize决定了scrollView能否滚动,contentOffset控制内容区域的偏移量,pageEnabled控制能否整页滚动。
    //scrollView实现缩放需要指定最大缩放系数,最小缩放系数,并指定缩放的视图。
    //pageControl不单独使用,通常与scrollView结合使用。
     
  • 相关阅读:
    MQ:RocketMQ
    un-动物:大雁
    un-动物:鸽子
    POJ 1236 Network of Schools 强连通图
    Cocos2d-x 2.2.3 使用NDK配置安卓编译环境问题之 Cannot find module with tag &#39;CocosDenshion/android&#39; in import path
    POJ3321:Apple Tree(树状数组)
    swift菜鸟入门视频教程-09-类和结构体
    Ambari-单步创建cluster
    折腾开源WRT的AC无线路由之路-5
    VMware虚拟机配置文件(.vmx)损坏修复
  • 原文地址:https://www.cnblogs.com/LiuYisiTony/p/5129888.html
Copyright © 2011-2022 走看看