1. UIScrollView必须知道它的contentsize
    这就是为啥TableView的row的height必须被计算,即使那些row还没有出现在屏幕。

    The scroll view must know the size of the content view so it knows when to stop scrolling; by default, it “bounces” back when scrolling exceeds the bounds of the content

  2. 为了确定用户是在点击还是在滑动,UIScrollView自己维护了一个计时器,并记录手指的位置。如果计时器相应之前,还没有比较显著的移动,那么UIScrollView就发送触摸时间到相应的subview;否则就滑动自己。

  3. scrollsToTop
    当用户轻点状态栏时,系统会要求离状态栏近的scrollview把自己的内容滑到最上面。如果这个属性是false,就会忽略这个请求。

    On iPhone, the scroll-to-top gesture has no effect if there is more than one scroll view on-screen that has scrollsToTop set to true.

  4. 设置特定区域可见

  5. scrollRectToVisible(_ rect: CGRect, animated: Bool)
  6. 设置分页

    scrollView.pagingEnabled = true

    当停止滑动时,会停到scrollview的大小的整数倍

  7. 设置方向锁定。
    一般来说,scrollview可以在横向、纵向滑动。设定锁定以后,就只能在一个方向锁定了。在哪个方向锁定要看在哪个方向移动的距离大。

        scrollView.directionalLockEnabled = true

  8. Scroll Indicator

    就是滑动时出现的那条线

        scrollView.indicatorStyle = .Black
    scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 5, 10, 30)
    button.addTarget(self, action: #selector(ViewController.flashIndicator(_:)), forControlEvents: .TouchUpInside)
    func flashIndicator(sender:UIButton) -> Void {
    scrollView.flashScrollIndicators()
    }

  9. 和键盘的交互

    var keyboardDismissMode: UIScrollViewKeyboardDismissMode { get set
    • none
    • onDrag:
      drag开始时就消失
    • interactive

      The keyboard follows the dragging touch offscreen, and can be pulled upward again to cancel the dismiss。

  10. UIScrollViewDelegate调用顺序

    • 滑动,然后放开
      scrollViewWillBeginDragging
      几次scrollViewDidScroll
      scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)
      scrollViewDidEndDragging(_:willDecelerate:)
      scrollViewWillBeginDecelerating
      若干scrollViewDidScroll
      scrollViewDidEndDecelerating
    • 滑动,scrollview不动,然后放开
      scrollViewWillBeginDragging
      几次scrollViewDidScroll
      scrollViewWillEndDragging
      scrollViewDidEndDragging
  11. isDragging, isTracking

    • 滑动,然后放开
      scrollViewWillBeginDecelerating之后,istracking变为false
      scrollViewDidEndDecelerating之前,isdragging为true
    • 滑动,scrollview不动,然后放开
      isTrackiing一直是true
      isdragging在scrollViewWillEndDragging之前是true

UIScrollView笔记的更多相关文章

  1. iOS回顾笔记(04) -- UIScrollView的基本使用详解

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  2. 学习笔记之-------UIScrollView 基本用法 代理使用

    //contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =sel ...

  3. [转]IOS 学习笔记(8) 滚动视图(UIScrollView)的使用方法

    下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示: 通过这个例子,我们重点学习UIS ...

  4. Unity3D学习笔记——UIScrollBar和UIScrollView使用

    UIScrollBar和UIScrollView结合使用效果图如下: 一:使用步骤  1.创建一个UIScrollView   2.然后创建一个UIScrollBar 3.打开UIScrollView ...

  5. UIScrollView学习笔记

    1.如何使用UIScrollView显示一张比屏幕大的图片 //创建滚动视图的对象 UIScrollView * sv = [[UIScrollView alloc]initWithFrame:CGR ...

  6. Unity3D学习笔记——NGUI之UIScrollView

    前言:有的时候Panel会被截取,里面的内容就不能显示完整,所以需要为其添加 scroll view组件. 一:将Panel放进一个scroll view只需要简单的3步: 1.首先在UI Root下 ...

  7. RAC学习笔记

    RAC学习笔记 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 在学习Re ...

  8. 兼容iOS 10 资料整理笔记

    原文链接:http://www.jianshu.com/p/0cc7aad638d9 1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化 ...

  9. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

随机推荐

  1. 【ZOJ3329】One Person Game

    题意 你有三枚色子,第i个色子有ki面,你有一个计数器. 1.开始的时候将计数器调至0 2.扔三个色子,如果色子1是a,色子2是b,色子3是c,则将计数器归零.否则计数器加上三个色子的和. 3.如果计 ...

  2. 最小生成树 prim

    1.算法思想: 图采用邻接矩阵存储,贪心找到目前情况下能连上的权值最小的边的另一端点,加入之,直到所有的顶点加入完毕. 2.算法实现步骤: 设图G =(V,E),其生成树的顶点集合为U. (1)把v0 ...

  3. pcl文档库

    http://docs.pointclouds.org/trunk/structpcl_1_1_polygon_mesh.html

  4. SpringIOC的理解

    http://www.cnblogs.com/ITtangtang/p/3978349.html---IOC http://blog.csdn.net/fighterandknight/article ...

  5. 运行Hadoop start-all.sh遇到的错误ssh: connect to host localhost port 22: Connection refused

    ssh: connect to host localhost port 22: Connection refused 我的情况是ssh server没装,查看方法: ps -e |grep ssh 1 ...

  6. Rsync+Inotify实现文件自动同步

    1>rsync概述 rsync的优点与不足 rsync与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求 ...

  7. 卸载超级兔子后,word打不开(无法创建工作文件),VS2010也没法用(找不到CL.exe)。

    又折腾了一上午,昨天用优化大师和超级兔子整理了电脑,今天来到实验室,vs打开后报错,提示"找不到CL.exe,"(具体提示忘记了,就是找不到CL.exe),打开word2010也是 ...

  8. Arduino Nano 读取ADS1100实例

    利用Arduino Nano的wire库可以很方便对ADS1100进行设置和读取转换后的数据. /* * Arduino reads ADS1100 I2C 16bit diff ADC */ /* ...

  9. MIDA Converter Basic patched for RAD Studio 10.1.2 Berlin (VCL转换到FMX)

    Mida is the only way to try to convert your project from VCL to FireMonkey. Version after version, M ...

  10. jQuery获取各种input输入框的值

    1.获取一组radio单选框的值(name属性为一组的radio的name属性) var q1 = $("input[name=element_name]:checked").va ...