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. 出现,视图必须派生自 WebViewPage 或 WebViewPage错误解决方法

    遇到这种问题是因为我新建了Areas,在Areas里面建Controllers,Models,Views.所以在View文件夹下面湿没有Web.config文件的. 解决方法:(复制views中的we ...

  2. 使用T4为数据库自动生成实体类

    T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器.使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML ...

  3. BaseAdapter&ArrayAdapter在ListView中应用

    一:BaseAdapter:共同实现的基类的适配器,是ArrayAdapter SimpleAdapter等的父类, 一般用于比较复杂的ListView,扩展性强. 详细信息可查看谷歌官方API:ht ...

  4. android 使用NinePatch图作Background,导致布局混乱

    在Layout中使用NinePatch图片作为其布局的背景图片时,可能会导致Layout中的布局发生混乱,此时将此Layout设置一个属性:android:padding="0dp" ...

  5. 用viewpager实现图片轮播

    应用中常常遇到图片轮播的需求,这时候就需要用到viewpager这个组件.viewpager是android support v4 中提供的一个组件.viewpager使用需要以下几步骤: 1.在布局 ...

  6. Part 7Handling events in AngularJS

    Let us understand with an example. Here is what we want to do. 1. Display the list of technologies i ...

  7. OC7_代理的基本概念

    // // Cat.h // OC7_代理的基本概念 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxue ...

  8. arcgis js api 本地化配置

    配置arcgis library 根目录的init.js的 "baseUrl:",使其指向正确的地址

  9. QQ截图工具提取

    今晚关了QQ,突然想截个图,但是呢又不想打开QQ了,于是在网上搜索截图工具,下载了几个,感觉都没有QQ截图好用.索性直接百度QQ截图工具提取,看到有些网站上有提取的,里面的文件有点多,不是我中意的,突 ...

  10. Codevs 1010 过河卒

     时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同 ...