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. Set集合——HashSet、TreeSet、LinkedHashSet(2015年07月06日)

    一.Set集合不同于List的是: Set不允许重复 Set是无序集合 Set没有下标索引,所以对Set的遍历要通过迭代器Iterator 二.HashSet 1.HashSet由一个哈希表支持,内部 ...

  2. 《JavaScript高级程序设计》笔记——关于继承

    继承在JavaScript中是一种“奇葩”的存在,因为其本身并没有类(class)的概念(ES5),所以只能用其他方式(原型链.构造函数.对象实例)来模拟继承的行为.既然是模拟,那就应该是想办法实现继 ...

  3. a标签中使用img后的高度多了4px

    前两天,在做一个网站的时候,发现a标签中使用img后的高度多了4px,各种纠结. 最后,仔细分析,终于找到原因了,因为img是行内元素,默认display: inline; 它与文本的默认行为类似,下 ...

  4. 给一个Entity的字段付初始化值(C#)

    给一个类去分别赋值,是一个很繁琐切无趣的工作. 那我们就想办法给你一个类去初始化,或许不是一个很效率的方法,但是,从可修改的角度讲,却是一个非常不错的方式.   具体的想法就是,利用类的属性,取出所有 ...

  5. IE6中position:fixed无效问题解决

    在做页面右下脚对话框时,直接使用position:fixed;大部分浏览器很容易就能做到,但是在IE6中却发现不行,原来是IE6不支持position:fixed;这个属性. 虽然用JS肯定能解决这个 ...

  6. vpn连接成功后,本地无法连接外网

    把在远程网络上使用默认网关前面的对勾取消掉,确定就ok啦...

  7. [老老实实学WCF] 第八篇 实例化

    老老实实学WCF 第八篇 实例化 通过上一篇的学习,我们简单地了解了会话,我们知道服务端和客户端之间可以建立会话连接,也可以建立非会话连接,通信的绑定和服务协定的 ServiceContract 的S ...

  8. Java longTime 和C#日期转换(结构+运算符重载)

    前几天,因为工作原因,连到了公司的一个java系统.查看数据的时候,突然整个人都不好了,数据库中日期字段时间为毛都是整型?之前从来没有接触过java,所心就趁机了解了一下.原来,在数据库中,保存的是j ...

  9. css3 画x图形

    .m-act-del{ right:; top:; margin-top: -6px; position: absolute; display: inline-block; width: 20px; ...

  10. Linux 输入子系统

    Technorati 标签: Kernel 输入子系统 Input      在Linux中,输入设备(如按键.键盘.触摸屏.鼠标等)是典型的字符设备,其一般的工作机理,是底层在按键.触摸时,触发一个 ...