UIScrollView笔记
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
为了确定用户是在点击还是在滑动,UIScrollView自己维护了一个计时器,并记录手指的位置。如果计时器相应之前,还没有比较显著的移动,那么UIScrollView就发送触摸时间到相应的subview;否则就滑动自己。
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.
设置特定区域可见
scrollRectToVisible(_ rect: CGRect, animated: Bool)
设置分页
scrollView.pagingEnabled = true
当停止滑动时,会停到scrollview的大小的整数倍
设置方向锁定。
一般来说,scrollview可以在横向、纵向滑动。设定锁定以后,就只能在一个方向锁定了。在哪个方向锁定要看在哪个方向移动的距离大。scrollView.directionalLockEnabled = true
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()
}
和键盘的交互
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。
UIScrollViewDelegate调用顺序
- 滑动,然后放开
scrollViewWillBeginDragging
几次scrollViewDidScroll
scrollViewWillEndDragging(_:withVelocity:targetContentOffset:)
scrollViewDidEndDragging(_:willDecelerate:)
scrollViewWillBeginDecelerating
若干scrollViewDidScroll
scrollViewDidEndDecelerating - 滑动,scrollview不动,然后放开
scrollViewWillBeginDragging
几次scrollViewDidScroll
scrollViewWillEndDragging
scrollViewDidEndDragging
- 滑动,然后放开
isDragging, isTracking
- 滑动,然后放开
在scrollViewWillBeginDecelerating
之后,istracking变为false
在scrollViewDidEndDecelerating
之前,isdragging为true - 滑动,scrollview不动,然后放开
isTrackiing一直是true
isdragging在scrollViewWillEndDragging
之前是true
- 滑动,然后放开
UIScrollView笔记的更多相关文章
- iOS回顾笔记(04) -- UIScrollView的基本使用详解
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- 学习笔记之-------UIScrollView 基本用法 代理使用
//contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =sel ...
- [转]IOS 学习笔记(8) 滚动视图(UIScrollView)的使用方法
下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示: 通过这个例子,我们重点学习UIS ...
- Unity3D学习笔记——UIScrollBar和UIScrollView使用
UIScrollBar和UIScrollView结合使用效果图如下: 一:使用步骤 1.创建一个UIScrollView 2.然后创建一个UIScrollBar 3.打开UIScrollView ...
- UIScrollView学习笔记
1.如何使用UIScrollView显示一张比屏幕大的图片 //创建滚动视图的对象 UIScrollView * sv = [[UIScrollView alloc]initWithFrame:CGR ...
- Unity3D学习笔记——NGUI之UIScrollView
前言:有的时候Panel会被截取,里面的内容就不能显示完整,所以需要为其添加 scroll view组件. 一:将Panel放进一个scroll view只需要简单的3步: 1.首先在UI Root下 ...
- RAC学习笔记
RAC学习笔记 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 在学习Re ...
- 兼容iOS 10 资料整理笔记
原文链接:http://www.jianshu.com/p/0cc7aad638d9 1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化 ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
随机推荐
- Python_12-线程编程
1.1 Python中的线程使用1.1.1 函数式1.2 创建threading.Thread的子类来包装一个线程对象1.2.1 threading.Thread类的使用1.3 线程 ...
- 如何在MyEclipse中使用Maven
https://jingyan.baidu.com/article/fd8044facb9bc85031137a91.html?qq-pf-to=pcqq.group Maven不仅是一个构建工具,还 ...
- xdebug 一直报错 upstream timed out (110: Connection timed out) while reading response header from upstream
本地主机(Windows环境192.168.66.1)访问虚拟机(192.168.66.139)里面的搭建的php环境(系统centos6.5版本,php版本是5.5.30 ,xdebug 2.4.0 ...
- $.ajax()函数
一般在前端html和服务器交互,又要异步提交表单时,我们通常会用到$.ajax(){}函数,这是封装到ajax里的一个函数,相比于XMLHTTPRequest做页面局部刷新更方便,但最终还是使用的XM ...
- git 进阶操作
1.blame git blame +文件名,可以查看到某个文件每一行最近一次是由谁编辑修改的.-L 22,33 选项可以制定 2.bisect 开始git bisect: $ git bisec ...
- es-多文档简单查询(_mget)
1.多文档查询 (1)url:POST http://localhost:9200/_mget?pretty/ 参数: { "docs": [{ "_index" ...
- CEPH集群RBD快照创建、恢复、删除、克隆(转)
Ceph支持一个非常好的特性,以COW(写时复制)的方式从RBD快照创建克隆,在Ceph中被称为快照分层.分层特性允许用户创建多个CEPH RBD克隆实例.这些特性应用于OpenStack等云平台中 ...
- jQuary总结3: jQuery语法1
1.jQuery样式操作 1.1 设置或者修改样式,操作的是style属性. 单样式语法: jQuery对象.css('属性名', '属性值') //html <div id="box ...
- CodeForces 122G Lucky Array(一脸懵逼的树状数组)
Petya loves lucky numbers. Everybody knows that lucky numbers are positive integers whose decimal re ...
- CentOS 7.2安装gitlab-ce
国内网络原因,gitlab-ce安装包可以在清华大学开源网站镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ [root@gitlab ~]# ...