iOS中UIScollView的总结

  在iOS开发中可以说UIScollView是所有滑动类视图的基础,包括UITableView,UIWebView,UICollectionView等等,UIScrollView类为显示大于应用程序窗口的内容提供支持。它使得用户可以使用滑动手势来滚动,并可以使用扩张/收缩手势来放大缩小部分内容。UIScrollView类可以拥有一个代理,该代理采用UIScrollViewDelegate协议。对于缩放的工作,代理必须实现viewForZoomingInScrollView:以及scrollViewDidEndZooming:withView:atScale:;此外,最大(maximumZoomScale)和最小(minimumZoomScale)缩放规模必须不同。

其中有很多常用到的属性设置和方法,在这里统一做下记录。

属性

automaticallyAdjustsScrollViewInsets

设置UITextView或者UITableView时,文字上方或table上总会留一片空白区域,原因在于navigation bar!!!

凡是继承UIScrollView的控件都会受到UIViewController的这个automaticallyAdjustsScrollViewInsets属性的影响,默认为YES,当有navigation bar的时候,UITextView的表现就是上面空白,设为NO,UITextView就正常了。

如果用了storyboard,那么也可以在storyboard里面做更改

alwaysBounceHorizontal

布尔值,规定是否在水平方向在滚动到末尾时产生“反弹”。

若该属性及bounces被设定为YES,水平拖拽即使在内容小于滚动视图边缘时也被允许。默认值为NO。

alwaysBounceVertical

布尔值,规定是否在垂直方向在滚动到末尾时产生“反弹”。

若该属性及bounces被设定为YES,垂直拖拽即使在内容小于滚动视图边缘时也被允许。默认值为NO。

bounces

布尔值,控制是否滚动视图能否超出内容边缘再弹回。

若该属性的值为YES。滚动视图会在遇到内容边缘时反弹。若值为NO,滚动会在达到边缘时立即停止而不反弹。默认值为YES。

bouncesZoom

布尔值,规定滚动视图是否在缩放超出最大值和最小值动画时播放内容缩放动画。

若该属性的值为YES,在缩放超出最大值或最小值时,滚动视图会临时播放一个稍超出限制范围的动画再返回限制大小。若该属性为NO,缩放会在达到限制大小时立即停止,默认为YES。

canCancelContentTouches

布尔值,控制触摸内容视图时是否总是导致跟踪。

若该属性的值为YES,内容中的视图会开始跟踪触摸的手指,若用户拖拽手指到足以滚动的距离,视图会收到touchesCancelled:withEvent:信息,而滚动视图会作为一个滚动事件处理这次触摸。若该属性的值为NO,滚动视图在内容视图开始跟踪时将无视手指移动,不进行滚动。

contentInset

表示内容视图从封闭滚动视图中被嵌入的距离。

用该属性增加围绕内容的滚动区域。单位为点。默认值为UIEdgeInsetssZero。

contentOffset

表示从滚动视图的原点到内容视图的原点的偏移的点。

默认值为CGPointZero。

contentSize

内容视图的大小。

单位是点。默认值是CGSizeZero。

decelerating

返回滚动视图中的内容是否在提起手指后继续移动。(只读)

若用户已不再拖拽内容但滚动还在发生时返回YES。

decelerationRate

浮点数,规定用户提起手指后的滚动减速速率。

你的应用程序可以使用UIScrollViewDecelerationRateNormal和UIScrollViewDecelerationRateFast常量作为引用点以获得一个合理的减速速率。

delaysContentTouches

布尔值,规定滚动视图是否延迟处理触摸下压手势。

若该属性值为YES,滚动视图会延迟处理下压手势直到可以确定该操作的意图是否是滚动。若值为NO,滚动视图会立即调用touchesShoudBegin:withEvent:inContentView:。默认值为YES。

具体讨论详见类讨论。

delegate

滚动视图对象的托管。

托管必须实现UIScrollViewDelegate协议。UIScrollView类(不保持托管),会调用托管实现中的每一个方法。

directionalLockEnabled

布尔值,规定是否滚动在某一方向上被禁止。

若该属性为NO,滚动在水平和垂直方向上都被允许。若该属性为YES,当用户开始某一方向的滚动(水平或垂直),滚动视图会禁止另一方向的滚动。若以对角线方向拖动,滚动则不会被锁定且用户在本次拖动完成之前可以在任意方向拖动。默认值为NO。

dragging

布尔值,表明用户是否开始滚动内容。

该属性持有的值可能需要滚动一段时间或距离才会被设定成YES。

indicatorStyle

滚动控制器的风格。

默认风格是UIScrollViewIndicatorStyleDefault。参见“Scroll Indicator Style”获取更多关于此常量的描述。

maximumZoomScale

浮点数,指定可被应用滚动视图内容的最大缩放因子。

该值规定了内容可被放大到多大。默认值为1.0。

minimumZoomScale

浮点数,指定可被应用滚动视图内容的最小缩放因子。

该值规定了内容可被缩小到多小。默认值为1.0。

pagingEnabled

布尔值,规定滚动视图是否可以翻页。

若该值为YES,滚动视图会在用户滚动时停止在滚动视图边框的整数倍处。默认值为NO。

panGestureRecognizer

当前用于滑动手势的手势识别器(只读)

在希望更加精确地控制被滚动视图识别的滑动手势时,你的应用程序可访问此属性。

pinchGestureRecognizer

当前用于扩张/收缩手势的手势识别器(只读)

在希望更加精确地控制被滚动视图识别的扩张/收缩手势时,你的应用程序可访问此属性。

scrollEnabled

布尔值,规定是否允许滚动。

若该属性的值为YES,允许滚动,若为NO,禁止滚动。默认值为YES。

当滚动被禁止时,滚动视图将不再接受触摸事件;滚动视图会将事件传送至响应链中。

scrollIndicatorInsets

表示滚动指示器从封闭滚动视图中被嵌入的距离。

默认值为UIEdgeInsetssZero。

scrollToTop

布尔值,控制滚动至顶部的手指是否有效。

滚动至顶部手势是触摸状态栏;当此属性为YES时,滚动视图在此手势发生时跳转至状态栏。此属性默认为YES。

该手势作用于单个可见的滚动视图;若有多个滚动视图(例如,日期选择器)设定了这个属性,或者若托管在scrollViewShouldScrollToTop:中返回了NO,UIScrollView会无视滚动到顶部的请求。在滚动视图滚动到内容视图的顶部之后,它会给托管发送一个scrollViewDidScrollToTop:信息。

showsHorizontalScrollIndicator

布尔值,控制是否水平滚动指示器可见。

默认值为YES。指示器会在跟踪时显示并在跟踪之后消失。

showsVerticalScrollIndicator

布尔值,控制是否垂直滚动指示器可见。

默认值为YES。指示器会在跟踪时显示并在跟踪之后消失。

tracking

返回用户是否触摸内容并初始化滚动。(只读)

若用户已触摸内容视图但可以还示开始拖动时该属性值为YES。

zoomBouncing

布尔值,表明缩放已超过了指定接收器的缩放限制。

若滚动视图缩放超出最大值或最小值时该值为YES;否则值为NO。

zooming

布尔值,表明内容视图当前是否在缩。

若用户发出了一个缩放手指,该值为YES,否则为NO。

zoomScale

浮点数,指定当前应用于滚动视图的内容的缩放因子。

该值规定了内容当前缩放了多少。默认值是1.0。

方法

flashScrollIndicators

短暂地显示滚动指示器。

你应该在把滚动视图放在最前端时调用此方法。

scrollRectToVisible:animated:

滚动内容的指定区域以便使内容在接受器中可见。

-(void)scrollRectToVisible:(CGRect)rectanimated:(BOOL)animated

参数:

rect

定义内容视图区域的矩形。

animated

若滚动应被动画化则传入YES,否则为NO。

该方法滚动内容视图以使rect中定义的区域可以刚好显示在滚动视图中。若区域已经是可见的,该方法什么也不做。

setContentOffset:animated:

设定内容视图原点相对于接收器原点的偏移。

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

参数

contentOffset

内容视图原点的偏移点(以点的形式表示)。

animated

若YES,用一个恒定的速度以动画形式移动到新的偏移处;NO则立即移动。

setZoomScale:animated:

浮点数,指定当前缩放因子。

- (void)setZoomScale:(float)scale animated:(BOOL)animated

参数

scale

要缩放内容到的新值。

animated

若YES,动画化缩放到时新的缩放大小,NO则立即缩放。

新的缩放值应在minnumZoomScale和maximumZoomScale之间。

关于UIScrollView属性和方法的总结的更多相关文章

  1. 关于UIScrollView属性跟方法的总结

    iOS中UIScollView的总结 在iOS开发中可以说UIScollView是所有滑动类视图的基础,包括UITableView,UIWebView,UICollectionView等等,UIScr ...

  2. ios开发UI篇—UIScrollView属性及其代理方法

    一.UIScrollView是什么? 1.UIScrollView是滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能. 2.UIScrollView是所有滚动 ...

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

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

  4. PHP 面向对象编程和设计模式 (2/5) - 静态变量、属性和方法及延迟绑定

    PHP高级程序设计 学习笔记 2014.06.10 Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定. 1.静态变量 static variable ...

  5. 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间

    [源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...

  6. String类型的属性和方法

    × 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...

  7. python 类属性与方法

    Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...

  8. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  9. UIKit的外观属性及方法汇总

    本文授权转载,作者:楚天舒(简书) 开发中经常会碰到要设置UI的某个生僻的外观属性,虽然在头文件中都能查到,但一是每个控件的头文件比较分散繁杂,二是每个头文件里有太多不用到的方法和属性,所以这里将UI ...

随机推荐

  1. jinfo命令(Java Configuration Info)

    jinfo可以输出并修改运行时的java 进程的opts.用处比较简单,用于输出JAVA系统参数及命令行参数.用法是jinfo -opt  pid 如:查看2788的MaxPerm大小可以用  jin ...

  2. python手记(32)

    #!/usr/bin/env python #-*- coding: utf-8 -*- import cv2 import numpy as np fn="test2.jpg" ...

  3. java线程:Atomic(原子的)

    一.何谓Atomic? Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位.计算机中的Atomic是指不能分割成若干部分的意思.如果一段代码被认为是Atomic,则表示这段代码在执行过程中 ...

  4. PHP按最大宽高等比例缩放图片类

    本来用phpthumb来缩略图片是十分方便的,但是最近在sae上写项目发现phpthumb在sae上保存文件时会出问题,想来实现一个简单的按最大宽高等比例缩放图片类也并不困难,于是便自己写了一个方便修 ...

  5. [转载]jquery的extend和fn.extend

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 为扩展j ...

  6. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(一)——控制节点的安装

      序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 控制节点: 1.准备Ubuntu 安装好Ubuntu12.04 server 64bits后 ...

  7. Codeforces Round #387(div 2)

    A =w= B VOV C QoQ D 题意:贝尔兰冬天很冷,那么司机要换上冬天专用轮胎才能开车.假设冬天一共有n天,有一套冬天专用轮胎,仅能使用k天,这套轮胎不管什么温度都能用,而夏天用的轮胎只能在 ...

  8. winform 窗体关闭按钮禁用、不显示最大化、最小化、关闭按钮 分类: WinForm 2014-12-22 16:09 82人阅读 评论(0) 收藏

    关闭按钮禁用: (1) FormClosing事件 private void Main_FormClosing(object sender, FormClosingEventArgs e) {     ...

  9. 新站上线啦,Html5Think,H5优秀资源的收集、学习、分享和交流

    最近闲来做了个H5资源站,刚刚有点资源,可以访问交流下. 栏目: H5网站模板 H5动画特效 H5资源工具 H5学习资料 致力于H5的学习,通过各个H5优秀案例的学习,逐步完善自己的H5体系,有朝一日 ...

  10. PDOstament对象执行execute()函数,只要是sql语句正确都是返回true

    [PDO对象操作数据库] PDOstament对象执行execute()函数,只要是sql语句正确都是返回true. 问题: 想要PDO对象实现更改一条记录, 并修改是否成功要返回信息给用户. 上我的 ...