zoukankan      html  css  js  c++  java
  • 视图篇——UIScrollView学习要点

    ScrollView原理
          视图的滚动过程,其实是在不断修改原点坐标。当手指触摸后,ScrollView会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么ScrollView发送tracking events到被点击的subView;若是在计时器到点后发生了移动事件,那么ScrollView取消tracking自己促发滚动。

    其子类可以重载
    touchesShouldBegin: withEvent: inContentView: 决定自己是否接收touch事件。

    pagingEnabled: 当值是YES会自动滚动到subView的边界,默认是NO。

    touchesShouldCancelInContentView: 开始发送tracking messages消息给subView的时候会调用这个方法。以决定是否发送tracking messages消息到subView。假如返回NO,发送。YES则不发送。若是canCancelContentTouches属性是NO,则不调用这个方法来影响如何处理滚动手势。

          ScrollView还可处理缩放和平移手势,要实现这必须实现委托viewForZoomingInScrollView:scrollViewDidEndZooming: withView: atScale:两个方法。另外maximumZoomScale和minimumZoomScale两个属性要不一样。

    常用属性介绍
    maximumZoomScale 能放大的最大倍数,是浮点数。

    minimumZoomScale  能缩小的最小倍数,是浮点数。

    pagingEnabled 是否自动滚动到subView边界

    scrollEnabled 是否可以滚动

    contentSize 里面内容的大小,即可以滚动的大小,默认是0,没有滚动效果

    showsHorizontalScrollIndicator 滚动时是否显示水平滚动条

    showsVerticalScrollIndicator 滚动时是否显示垂直滚动条

    bounces 默认是YES,就是滚动超过边界会反弹,即有反弹回来的效果。若是NO,则滚动到达边界会立刻停止

    bouncesZoom 与bounces类似,只是反映在缩放效果上。

    directionalLockEnabled 默认是NO,可以在垂直和水平方向同时运动。当值是YES时,视哪个方向开始则锁定另外一个方向的滚动。

    indicatorStyle 滚动条的样式。总共3色:默认、黑、白

    scrollIndicatorInsets 设置滚动条位置

    tracking  当touch后还没有拖动的时候是YES,否则NO

    zoomBouncing 当内容放大到最大或者最小的时候值是YES,否则NO

    zooming 当正在缩放的时候值是YES,否则NO

    decelerating 当滚动后,手指放开但还在继续滚动中。此时是YES,其它时候都是NO

    decelerationRate 设置手指放开后的减速率

    基本使用方法:
    初始化:一般的控件初始化都是可以用alloc和init来初始化的。
            UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width, 400)];

     关于控件添加与初始化,建议都采用代码调用合适的初始化方法来操作,虽然IB布局能够节省时间,但不能哪过很好了解整个代码执行流程。

    委托方法:UIScrollView也要指定委托对象,该委托对象的控制器同样也要遵循UIScrollViewDelegate协议,实现其相应的代理方法。

    • scrollViewDidScroll:
    • scrollViewWillBeginDragging:
    • scrollViewDidEndDragging:
    • scrollViewDidEndDecelerating: 
  • 相关阅读:
    sphinx测试数据生成
    sphinx是支持结果聚类的——WHERE、ORDER BY和GROUP BY
    sphinx是支持结果聚类的
    sphinx 针对tedfield搜索
    启明星辰泰合发布新一代日志分析系统
    php下载远程图片方法总结(curl手动解析header)curl跳转问题解决
    php抓取ajax页面返回图片。
    PHP用CURL或fsockopen伪造IP和来路(referer)
    windows无效字符名导致的错误及解决办法
    php 原生或curl获取 http headers
  • 原文地址:https://www.cnblogs.com/lovecode/p/2295291.html
Copyright © 2011-2022 走看看