【UIScrollView】基本方法+基本描述
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】基本方法+基本描述的更多相关文章
- 重写toString()方法来描述一个类
package com.zch.test; /* toString方法以及重写toString方法 toString方法是一个自我描述方法 方法本身返回的是该对象的实现类的 类名 + @ + hash ...
- salesforce 零基础学习(三十七) DML及Database方法简单描述
在apex中通过soql查询可以使用两种方式,使用DML语句或者使用Database的方法. 使用DML语句和使用Database类的方法对于我们来说用的都很多,并且都很常见.对于数据库常见的操作:增 ...
- UIScrollView 代理方法
在使用UIScrollView和它的子类UITableView时,有时需要在不同操作状态下,做不同的响应. 如何截获这些状态,如正在滚动,滚动停止等,使用UIScrollViewDelegate_Pr ...
- iOS UIScrollview代理方法
方法&&属性: // 监控目前滚动的位置(默认CGPointZero) CGPoint contentOffset; - (void)setContentOffset:(CGPoint ...
- 【Python046--魔法方法:描述符】
一.描述符的定义: 描述符就是将特殊类型的类的实例指派给另外一个类的属性 1.举例: 特殊类型的类要实现以下三个方法中的其中一个或者全部实现 * __get__(self,instance,owner ...
- Python之路(第二十七篇) 面向对象进阶:内置方法、描述符
一.__call__ 对象后面加括号,触发执行类下面的__call__方法. 创建对象时,对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()( ...
- 课时46:魔法方法:描述符(property的原理)
目录: 一.描述符(property的原理) 二.课时46课后习题及答案 ********************************** 一.描述符(property的原理) ********* ...
- Python笔记(二十五)_魔法方法_描述符
描述符的属性方法 __get__(self, instance, owner): 用于访问属性,返回属性的值 __set__(self, instance, value): 用于给属性赋值时,返回属性 ...
- python 面向对象专题(十):特殊方法 (三)__get__、__set__、__delete__ 描述符(三)方法是描述符
在类中定义的函数属于绑定方法(bound method),因为用户定义的函数都有 __get__ 方法,所以依附到类上时,就相当于描述符.示例 20-13 演示了从 面向对象专题(九)示例 20-8 ...
随机推荐
- codeforces 676A A. Nicholas and Permutation(水题)
题目链接: A. Nicholas and Permutation time limit per test 1 second memory limit per test 256 megabytes i ...
- jemter转换报告生成html格式报告
前言: 结合上篇,因为使用Jenkins做集成,jmeter的结果肯定需要生产一个报告,如果按原本的jmt格式生成,肯定是不行的,现在就需要对报告格式进行转换 使用工具: ant:jmeter可以通过 ...
- duplicate symbol _OBJC_METACLASS_$ 报错记录
duplicate symbol _OBJC_METACLASS_$_TabbarButton in: /Users/hw201406/Library/Developer/Xcode/DerivedD ...
- Ext js中CheckBoxGroup的动态绑定
<script type="text/jscript"> var WinXianCode; function SearchGetXianLuF(Type) { if(! ...
- ASP.NET缓存全解析4:应用程序数据缓存 转自网络原文作者李天平
System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类.此命名空间包括 Cache 类,该类是一个字典,您可以在其中存储任意数据对象,如哈希表和数据集.它还为这些对象提供了失效 ...
- NSTimer实现读秒、倒计时等周期性操作
self.timerSchedule = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(spin ...
- Codevs 2894 Txx考试
时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description Txx是一个成绩很差的人,考试便成了他的噩梦.于是他常在考试时睡觉以打发时间.今天 ...
- C++ 11 之学习总结
感慨时间过的好快,C++ 11出来都5年了,现在才开始学习,但为时也不晚: 主要是网上及身边的朋友大肆宣扬C++ 11的某些优化,弄得别人心里痒痒的,所以就花了3天学习了点基本知识,相对于整个C++ ...
- C语言 猜数游戏--产生一个随机数
#include <stdio.h> #include <time.h> #include <stdlib.h> int main(int argc, const ...
- Ubuntu系统下允许Apache的mod_rewrite功能
首先,使能apache的rewirte模块,在shell里输入下边的命令: sudo a2enmod rewrite 然后重启一下webserver使更改生效 sudo service apache2 ...