UIScrollView的属性总结
Properties
alwaysBounceHorizontal //一个布尔值,决定是否弹跳总是出现水平滚动时达到结束内容的看法。默认值是NO 。
@property(nonatomic) BOOL alwaysBounceHorizontal //如果这个属性被设置为YES而且bounces的值是YES,水平拖动是允许的内容,即使小于滚动视图的边界。默认值是NO
alwaysBounceVertical //一个布尔值,决定是否反弹总是发生在垂直滚动到达结束内容。默认值是NO 。
@property(nonatomic) BOOL alwaysBounceVertical // //如果这个属性被设置为YES而且bounces的值是YES,垂直拖动是允许的内容,即使小于滚动视图的边界。默认值是NO
bounces //控制滚动视图是否反弹过去内容的边缘,然后再返回一个布尔值。
@property(nonatomic) BOOL bounces //默认值是YES 。
bouncesZoom //一个布尔值,决定当缩放超过上限或下限时是否滚动视图推动内容缩放。
@property(nonatomic) BOOL bouncesZoom //如果这个属性的值是YES并且变焦缩放超过上限或下限,返回他们之前滚动视图暂时缩放内容。如果这属性是NO,立即停止在一个比例限制缩放。默认是YES。
canCancelContentTouches //一个布尔值,控制是否涉及到的内容视图中总是导致跟踪。
@property(nonatomic) BOOL canCancelContentTouches
contentInset //内容视图的距离,是从封闭的滚动视图插图。
@property(nonatomic) UIEdgeInsets contentInset //使用这个属性添加到周围滚动区域的内容。大小的单位是点。默认值是UIEdgeInsetsZero 。
//在哪个点的内容视图的起源是从滚动视图的原点偏移 监控目前滚动的位置
@property(nonatomic) CGPoint contentOffset //默认值为CGPointZero
contentSize //内容视图的大小。
@property(nonatomic) CGSize contentSize //大小的单位是点。默认大小CGSizeZero的。
decelerating //返回的内容是否在滚动视图后,用户解除他们的手指。 (只读)
@property(nonatomic, readonly, getter=isDecelerating) BOOL decelerating //如果用户不拖动内容但滚动事件仍发生 ,返回的值是YES。
decelerationRate //一个浮点值,确定在用户解除他们的手指后的减速率。
@property(nonatomic) float decelerationRate //使用的UIScrollViewDecelerationRateNormal和UIScrollViewDecelerationRateFas常数作为合理减速率的参考点。
delaysContentTouches //一个布尔值,决定是否推迟滚动视图触摸手势的处理。
@property(nonatomic) BOOL delaysContentTouches //如果这个属性的值是YES ,滚动视图延误处理的触摸式的姿态,直到它可以决定
是否滚动是意图。如果该值是NO,滚动视图立即调用touchesShouldBegin : withEvent:inContentView :默认值是YES 。
delegate //滚动视图对象的代表。
@property(nonatomic, assign) id delegate //该委托必须采取UIScrollViewDelegate的协议。 UIScrollView的类调用委托实现每个协议的方法,它不保留委托。
directionalLockEnabled //一个布尔值,决定是否在某一特定方向禁用滚动
@property(nonatomic, getter=isDirectionalLockEnabled) BOOL directionalLockEnabled //如果此属性是NO,则滚动允许在水平和垂直方向。若是YES,则只在使用者最开始滚动的方向上进行(水平或垂直),若开始滚动是沿对角线方向的则可任意方向滚动。默认值是NO。
dragging //一个布尔值,指示用户是否已经开始滚动内容。 (只读)
@property(nonatomic, readonly, getter=isDragging) BOOL dragging /在它被设置为YES之前,这个属性的值可能需要一些时间或滚动的距离
indicatorStyle //滚动指标的风格。
@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle //默认的风格UIScrollViewIndicatorStyleDefault 。详见 “Scroll Indicator Style”
说明这些常数
maximumZoomScale //一个浮点值指定可用于滚动视图的内容的最大规模的因素。
@property(nonatomic) float maximumZoomScale //此值确定多大的内容可以扩展。它必须大于最小缩放比例缩放才能启用。默认值是1.0 。
Discussion
minimumZoomScale 浮点值,指定可应用于滚动视图的内容的最低比例因子
@property(nonatomic) float minimumZoomScale //此值决定如何可以缩放小内容。默认值是1.0
pagingEnabled //一个布尔值,决定是否启用分页滚动视图。
@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled //如果这个属性的值是YES,当用户滚动时,滚动视图停止滚动视图的边界的倍数。默认值是NO 。
panGestureRecognizer //泛手势的基本手势识别。 (只读)
@property(nonatomic, readonly) UIPanGestureRecognizer *panGestureRecognizer //你的应用程序访问此属性,当它希望能够通过滚动视图更精确地控制泛手势确认。
pinchGestureRecognizer //捏的基本的手势识别。 (只读)
@property(nonatomic, readonly) UIPinchGestureRecognizer *pinchGestureRecognizer //你的应用程序访问此属性时,它希望能够通过滚动视图更精确地控制捏手势确认。
scrollEnabled //一个布尔值,决定是否启用滚动。
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled //如果这个属性的值是YES ,滚动启用,如果它是NO,滚动被禁用。默认值是YES。 被禁用滚动时,滚动视图不接受触摸事件,将其转发响应链。
scrollIndicatorInsets //滚动指标点到滚动视图的边缘的距离。
@property(nonatomic) UIEdgeInsets scrollIndicatorInsets //默认值为UIEdgeInsetsZero
scrollsToTop //一个布尔值,控制是否滚动到顶部的姿态是有效的
@property(nonatomic) BOOL scrollsToTop //当设为YES,发生这种姿态时滚动视图跳转到内容顶端,此属性的默认值是YES 。
showsHorizontalScrollIndicator //一个布尔值,控制水平滚动指标是否是可见的。
@property(nonatomic) BOOL showsHorizontalScrollIndicator //默认值是YES 。指标是可见的,而跟踪正在进行,结束后淡出。
showsVerticalScrollIndicator //一个布尔值,控制垂直滚动指标是否是可见的。
@property(nonatomic) BOOL showsVerticalScrollIndicator ////默认值是YES 。指标是可见的,而跟踪正在进行,结束后淡出。
tracking //返回判断是否用户触碰内容触发滚动 (只读)
@property(nonatomic, readonly, getter=isTracking) BOOL tracking //如果用户已经触及的内容视图但可能还没有开始拖动它。这个属性的值便是YES
zoomBouncing // 一个布尔值,指示缩放已超过指定的接收范围。 (只读)
@property(nonatomic, readonly, getter=isZoomBouncing) BOOL zoomBouncing //这个属性的值是YES如果滚动视图缩放回最小或最大变焦缩放值;否则值为NO 。
zooming //一个布尔值,指示内容是否认为正在放大或缩小。 (只读)
@property(nonatomic, readonly, getter=isZooming) BOOL zooming //如果用户缩放手势,否则它是没有这个属性的值是YES
zoomScale //一个浮点值,指定目前用于滚动视图的内容的比例因子。
@property(nonatomic) float zoomScale //此值确定多少内容目前正在缩放。默认值是1.0
CGSize contentSize 滚动范围的大小
UIEdgeInsets contentInset 视图在scrollView中的位置
id<UIScrollerViewDelegate> delegate 设置协议
BOOL directionalLockEnabled 指定控件是否只能在一个方向上滚动
BOOL bounces 控制控件遇到边框是否反弹
BOOL alwaysBounceVertical 控制垂直方向遇到边框是否反弹
BOOL alwaysBounceHorizontal 控制水平方向遇到边框是否反弹
BOOL pagingEnabled 控制控件是否整页翻动
BOOL scrollEnabled 控制控件是否能滚动
BOOL showsHorizontalScrollIndicator 控制是否显示水平方向的滚动条
BOOL showsVerticalScrollIndicator 控制是否显示垂直方向的滚动条
UIEdgeInsets scrollIndicatorInsets 指定滚动条在scrollerView中的位置
UIScrollViewIndicatorStyle indicatorStyle 设定滚动条的样式
float decelerationRate 改变scrollerView的减速点位置
BOOL tracking 监控当前目标是否正在被跟踪
BOOL dragging 监控当前目标是否正在被拖拽
BOOL decelerating 监控当前目标是否正在减速
BOOL delaysContentTouches 控制视图是否延时调用开始滚动的方法
BOOL canCancelContentTouches 控制控件是否接触取消touch的事件
float minimumZoomScale 缩小的最小比例
float maximumZoomScale 放大的最大比例
float zoomScale 设置变化比例
BOOL bouncesZoom 控制缩放的时候是否会反弹
BOOL zooming 判断控件的大小是否正在改变
BOOL zoomBouncing 判断是否正在进行缩放反弹
BOOL scrollsToTop 控制控件滚动到顶部
这里把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事件不会再发生。
Instance Methods
flashScrollIndicators //暂时显示滚动指标。
- (void)flashScrollIndicators //当你把滚动视图移动到前面,你应该调用此方法。
scrollRectToVisible:animated: //滚动一个特定区域的内容以便它在接收是可见的
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated //此方法滚动查看内容,以便由rect定义的区域仅仅是滚动视图内是可见的。如果该地区已是可见的,该方法什么都不做。
参数:
rect //定义一个矩形面积的内容视图。
animated //YES if the scrolling should be animated, NO if it should be immediate.
setContentOffset:animated: 设置从内容视图的原点偏移对应接收机的起源
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
参数:
contentOffset //从内容视图的原点偏移的一个点
animated YES表示以一个恒定的速度过渡到新的偏移,NO表示立即到达
setZoomScale:animated: //一个浮点数指定当前的缩放比例
- (void)setZoomScale:(float)scale animated:(BOOL)animated //新的值应该在是minimumZoomScale和maximumZoomScale之间
参数:
scale //缩放内容的新的值。
animated //YES推动过渡到新的规模, NO 以使立即过渡。
touchesShouldBegin:withEvent:inContentView: //自定义默认行为,当手指触摸在显示的内容由子类重写。
- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view //UIScrollView的默认行为是调用触摸事件发生的UIResponder的事件处理方法的目标子视图
参数:
touches //一个涉及的UITouch实例集代表表示事件的开始阶段
event //代表在触摸触摸对象属于事件的对象。
view //在内容中发生触摸手势子视图。
Return Value //返回NO ,如果你不想滚动视图发送的事件消息查看。如果你想以接收这些消息,返回YES (默认) 。
touchesShouldCancelInContentView: //返回是否取消有关的内容子视图的接触,并开始拖动。
- (BOOL)touchesShouldCancelInContentView:(UIView *)view //它开始发送跟踪邮件的内容视图后动视图调用此方法。如果它从这种方法收到NO便停止拖动和转发触摸事件的内容子视图。滚动视图不调用此方法如果canCancelContentTouches 属性值是NO
参数:
view 在内容中被触发的视图对象
Return Value //YES取消进一步触控消息查看,NO查看继续收到这些消息。如果视图认为是不是一个UIControl对象默认YES,否则返回NO
zoomToRect:animated: //缩小到特定区域的内容,所以它是在接收器中可见。
- (void)zoomToRect:(CGRect)rect animated:(BOOL)animated //这种方法调整的zoomScale进行必要的缩放以便使内容视图成为由矩形定义的区域
rect //矩形定义内容视图区
animated //YES if the scrolling should be animated, NO if it should be immediate.
Constants
Scroll Indicator Style
typedef enum { //指示器风格设置
UIScrollViewIndicatorStyleDefault, //默认,
UIScrollViewIndicatorStyleBlack, //适用于白色内容背景
UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;
Deceleration Constants //减速常数
The rate of deceleration for a scrolling view.
{
const float UIScrollViewDecelerationRateNormal; //默认减速率
const float UIScrollViewDecelerationRateFast;
}