scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(, , , )];

scrollView.backgroundColor = [UIColor redColor];

    scrollView.scrollsToTop = NO;  // 是否支持滑动最顶端

    scrollView.delegate = self;      // 设置代理, 需要遵循协议

    scrollView.contentSize = CGSizeMake(, *); // 设置滚动内容大小
//小技巧 : 如果不想某个左右滚动, width设为0. 同理上下就设定height为0 scrollView.bounces = NO; // 控件滚动的时候遇到边框是否反弹 scrollView.pagingEnabled = YES; // 控制控件是否整页翻动 scrollView.scrollEnabled = NO; // 控制控件是否能滚动 scrollView.showsHorizontalScrollIndicator = NO; // 控制是否显示水平方向的滚动条
scrollView.showsVerticalScrollIndicator = NO; // 控制是否显示垂直方向的滚动条 scrollView.indicatorStyle= UIScrollViewIndicatorStyleWhite; // 设定滚动条的样式 , 禁止滚动条了还设什么样式? scrollView.contentInset = UIEdgeInsetsMake(0, 50, 50, 0); // 设置内容的边缘的内边距 scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 50, 0, 0); // 指定滚动条在scrollerView中的位置 scrollView - tracking //如果用户已经触及的内容视图但可能还没有开始拖动它。这个属性的值便是YES scrollView - dragging //一个布尔值,指示用户是否已经开始滚动内容。 scrollView - decelerating //返回的内容是否在滚动视图后,用户解除他们的手指。 (只读)//如果用户不拖动内容但滚动事件仍发生 ,返回的值是YES。 scrollView - delaysContentTouches //一个布尔值,决定是否推迟滚动视图触摸手势的处理。 //如果这个属性的值是YES ,滚动视图延误处理的触摸式的姿态,直到它可以决定 ,是否滚动是意图。如果该值是NO,滚动视图立即调用touchesShouldBegin : withEvent:inContentView :默认值是YES scrollView - scrollsToTop //一个布尔值,控制是否滚动到顶部的姿态是有效的
//当设为YES,发生这种姿态时滚动视图跳转到内容顶端,此属性的默认值是YES 。 - (void)flashScrollIndicators //当你把滚动视图移动到前面,你应该调用此方法。
[scrollView flashScrollIndicators]; // 提示用户,正在滚动视图 @property(nonatomic, getter=isDirectionalLockEnabled) BOOL directionalLockEnabled //如果此属性是NO,则滚动允许在水平和垂直方向。若是YES,则只在使用者最开始滚动的方向上进行(水平或垂直),若开始滚动是沿对角线方向的则可任意方向滚动。默认值是NO , 水平了,就是水平, 垂直了就是垂直
scrollView.directionalLockEnabled = YES; ____________________________________________________________________- - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated //此方法滚动查看内容,以便由rect定义的区域仅仅是滚动视图内是可见的。如果该地区已是可见的,该方法什么都不做。 - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated // 设置从内容视图的原点偏移对应接收机的起源
contentOffset //从内容视图的原点偏移的一个点
// animated YES表示以一个恒定的速度过渡到新的偏移,NO表示立即到达 //一个浮点数指定当前的缩放比例
- (void)setZoomScale:(float)scale animated:(BOOL)animated //新的值应该在是minimumZoomScale和maximumZoomScale之间 参数:
scale //缩放内容的新的值。
animated //YES推动过渡到新的规模, NO 以使立即过渡。 //自定义默认行为,当手指触摸在显示的内容由子类重写。
- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view //UIScrollView的默认行为是调用触摸事件发生的UIResponder的事件处理方法的目标子视图 参数:
touches //一个涉及的UITouch实例集代表表示事件的开始阶段
event //代表在触摸触摸对象属于事件的对象。
view //在内容中发生触摸手势子视图。 Return Value //返回NO ,如果你不想滚动视图发送的事件消息查看。如果你想以接收这些消息,返回YES (默认) 。 //返回是否取消有关的内容子视图的接触,并开始拖动。
- (BOOL)touchesShouldCancelInContentView:(UIView *)view //它开始发送跟踪邮件的内容视图后动视图调用此方法。如果它从这种方法收到NO便停止拖动和转发触摸事件的内容子视图。滚动视图不调用此方法如果canCancelContentTouches 属性值是NO
参数:
view 在内容中被触发的视图对象
Return Value //YES取消进一步触控消息查看,NO查看继续收到这些消息。如果视图认为是不是一个UIControl对象默认YES,否则返回NO
zoomToRect:animated: //缩小到特定区域的内容,所以它是在接收器中可见。

这里把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 与 TableView重叠问题)

【UIScrollView】基本方法+基本描述的更多相关文章

  1. 重写toString()方法来描述一个类

    package com.zch.test; /* toString方法以及重写toString方法 toString方法是一个自我描述方法 方法本身返回的是该对象的实现类的 类名 + @ + hash ...

  2. salesforce 零基础学习(三十七) DML及Database方法简单描述

    在apex中通过soql查询可以使用两种方式,使用DML语句或者使用Database的方法. 使用DML语句和使用Database类的方法对于我们来说用的都很多,并且都很常见.对于数据库常见的操作:增 ...

  3. UIScrollView 代理方法

    在使用UIScrollView和它的子类UITableView时,有时需要在不同操作状态下,做不同的响应. 如何截获这些状态,如正在滚动,滚动停止等,使用UIScrollViewDelegate_Pr ...

  4. iOS UIScrollview代理方法

    方法&&属性: // 监控目前滚动的位置(默认CGPointZero) CGPoint contentOffset; - (void)setContentOffset:(CGPoint ...

  5. 【Python046--魔法方法:描述符】

    一.描述符的定义: 描述符就是将特殊类型的类的实例指派给另外一个类的属性 1.举例: 特殊类型的类要实现以下三个方法中的其中一个或者全部实现 * __get__(self,instance,owner ...

  6. Python之路(第二十七篇) 面向对象进阶:内置方法、描述符

    一.__call__ 对象后面加括号,触发执行类下面的__call__方法. 创建对象时,对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()( ...

  7. 课时46:魔法方法:描述符(property的原理)

    目录: 一.描述符(property的原理) 二.课时46课后习题及答案 ********************************** 一.描述符(property的原理) ********* ...

  8. Python笔记(二十五)_魔法方法_描述符

    描述符的属性方法 __get__(self, instance, owner): 用于访问属性,返回属性的值 __set__(self, instance, value): 用于给属性赋值时,返回属性 ...

  9. python 面向对象专题(十):特殊方法 (三)__get__、__set__、__delete__ 描述符(三)方法是描述符

    在类中定义的函数属于绑定方法(bound method),因为用户定义的函数都有 __get__ 方法,所以依附到类上时,就相当于描述符.示例 20-13 演示了从 面向对象专题(九)示例 20-8 ...

随机推荐

  1. JAVA备忘录

    本文主要是记录一下JAVA: 1.Arrays.的几个用法: fill:数组全部置一个数 sort:排序 binarySearch:二分查找 2.Map的用法: Map<Integer,Inte ...

  2. poj 2455 Secret Milking Machine 二分+最大流 sap

    题目:p条路,连接n个节点,现在需要从节点1到节点n,不重复走过一条路且走t次,最小化这t次中连接两个节点最长的那条路的值. 分析:二分答案,对于<=二分的值的边建边,跑一次最大流即可. #in ...

  3. 非常棒的 「Sublime Text 配色/主题」与「编程字体」

    *标有 CT 的是配色 **主题中调用的字体和相配套的Sublime主程序图标可访问GitHub获取 Afterglow https://github.com/YabataDesign/aftergl ...

  4. http header详解

    HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用了请求/响应模 型,浏览器或其他客户端发出请求,服务器给与响应.就整个网络资源 ...

  5. 两种局部刷新UITableView的方法的使用条件

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ //1.取消选 ...

  6. PHP利用GD库画曲线

    效果: PHP代码 <?php Header('Content-type: image/png;Charset:utf-8'); //声明图片 $im = imagecreate(400,200 ...

  7. .NET下实现分布式缓存系统Memcached (转自网络)

    Memcached在.NET中的应用 一.Memcached服务器端的安装(此处将其作为系统服务安装) 下载文件:memcached 1.2.1 for Win32 binaries (Dec 23, ...

  8. Part 11 Search filter in AngularJS

    As we type in the search textbox, all the columns in the table must be searched and only the matchin ...

  9. IOS添加控件

    YJQApp *appInfo =self.apps[i]; //.添加图片 UIImageView * iconView = [[UIImageView alloc]init]; CGFloat i ...

  10. php nginx fastdfs 下载文件重命名

    其实fdfs可以传入一个filename参数,指定文件名.. M00/00/00/fwAAAVGMateAafjTAAAABBW-xbM368.txt?filename=test.txt 这样下载时用 ...