1, CGPoint contentOffset
描述了内容视图相对于scrollView窗口的位置(向上向左的偏移量)。默认值是CGPointZero,也就是(0,0)。当视图被拖动时,系统会不断修改该值。也可以通过setContentOffset:animated:
方法让图片到达某个指定的位置。
scrollRectToVisible:animated:
与setContentOffset:animated:
类似,只不过是将scrollView坐标系内的一块指定区域移到scrollView的窗口中,如果这部分已经存在于窗口中,则什么也不做。
2,CGSize contentSize
可滑动范围
3, UIEdgeInsets contentInset
表示scrollView的内边距,也就是内容视图边缘和scrollView的边缘的留空距离,默认值是UIEdgeInsetsZero,也就是没间距s。
4, delegate
代理
5, directionalLockEnabled
是否锁定某个特定方向的滚动,默认值为NO。设置为YES时,一旦用户向水平或竖直方向拽动时,另一个方向的滚动则被锁定了。但是如果首次拽动是斜着的,那么则不会锁定方向。
@property(nonatomic,getter=isDirectionalLockEnabled) BOOL directionalLockEnabled; // default NO. if YES, try to lock vertical or horizontal scrolling while dragging
6,BOOL bounces
描述的当scrollview的显示超过内容区域的边缘以及返回时,是否有弹性,默认值为YES。值为YES的时候,意味着到达contentSize所描绘的的边界的时候,拖动会产生弹性。值为No的时候,拖动到达边界时,会立即停止
7,BOOL alwaysBounceVertical
默认值为NO,如果该值设为YES,并且bounces也设置为YES,那么,即使设置的contentSize比scrollView的size小,那么也是可以拖动的。
8,BOOL alwaysBounceHorizontal
默认值为NO,如果该值设为YES,并且bounces也设置为YES,那么,即使设置的contentSize比scrollView的size小,那么也是可以拖动的。
9,BOOL pagingEnabled
是否使用分页机制,默认值为NO。当设置为YES时,会按照scrollView的宽度对内容视图进行分页。
10、是否能拖动
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
视图是否可被拖动,默认值为YES。一旦该值设置为NO,则scrollView不再接受触屏事件,会直接传递响应链
11.手指滑动后抬起,页面的减速速率。可以使用以下两个值
UIKIT_EXTERN const UIScrollViewDecelerationRate UIScrollViewDecelerationRateNormal API_AVAILABLE(ios(3.0));
UIKIT_EXTERN const UIScrollViewDecelerationRate UIScrollViewDecelerationRateFast
12,UIScrollViewIndexDisplayMode indexDisplayMode
索引展示模式 apple tv上使用
13,BOOL tracking
追踪 只读属性,在接触还未拖动时会返回yes
14,BOOL dragging
拖拉 只读属性
15,BOOL decelerating
减速时返回yes
16,是否推迟触屏手势处理
默认值为YES。设置为YES的时候,系统在确定是否发生scroll事件之后,才会处理触屏手势,否则,则会立即调用touchesShouldBegin:withEvent:inContentView:方法。
@property(nonatomic) BOOL delaysContentTouches; // default is YES. if NO, we immediately call -touchesShouldBegin:withEvent:inContentView:. this has no effect on presses
17,BOOL canCancelContentTouches
同上面情况,按压滑动会被取消,不能够滑动
18,CGFloat minimumZoomScale
最小放大比例,默认值为1,不得大于maxmumZoomScale
19,CGFloat maximumZoomScale
设置最大放大比例,默认值为1,不得小于minimumZoomScale
20,CGFloat zoomScale
当前的缩放比例。系统会根据缩放过程调整此值
21,BOOL bouncesZoom
描述在缩放超过缩放比例时,是否bounce,默认值为YES。如果值为NO,则达到最大或最小缩放比例时会立即停止缩放。否则,产生弹簧效果。
22、setZoomScale:animated:
程序设置缩放大小
23、zoomToRect:animated:
将内容视图缩放到指定的Rect中
24,点击状态栏回到顶部
/*
是否启动“滚动至顶端”手势,默认值为YES。当用户使用了“滚动至顶端”手势(轻击状态栏)时,系统会要求离状态栏最近的scrollView滚动到顶端,如果scrollToTop设置为NO,则该scrollView的delegate的scrollViewShouldScrollToTop:方法会返回NO,不会滚动到顶端。否则,则会滚动到顶端。滚动到顶端之后,会给delegate发送scrollViewDidScrollToTop:消息。需要注意的是,在iphone上,如果有多个scrollview的scrollToTop参数设置为YES的时候,“滚动至顶端”手势会失效
*/
@property(nonatomic) BOOL scrollsToTop
25,UIScrollViewKeyboardDismissMode keyboardDismissMode
当有输入框时的一些处理效果,拖动时可消失,也可停下时恢复输入状态
26,UIRefreshControl *refreshControl
自带刷新控件,用法如button
27、重点说一下以下属性,这是iOS11新增的属性 来代替 automaticallyAdjustsScrollViewInsets
@property(nonatomic) UIScrollViewContentInsetAdjustmentBehavior contentInsetAdjustmentBehavior API_AVAILABLE(ios(11.0),tvos(11.0));
typedef NS_ENUM(NSInteger, UIScrollViewContentInsetAdjustmentBehavior) {
UIScrollViewContentInsetAdjustmentAutomatic, // 和scrollableAxes一样,scrollView会自动计算和适应顶部和底部的内边距并且在scrollView 不可滚动时,也会设置内边距.
UIScrollViewContentInsetAdjustmentScrollableAxes, // 自动计算内边距.
UIScrollViewContentInsetAdjustmentNever,//不计算内边距
UIScrollViewContentInsetAdjustmentAlways, //根据safeAreaInsets 计算内边距
} API_AVAILABLE(ios(11.0),tvos(11.0));
- 代码中要对iOS11 做适配
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
self.automaticallyAdjustsScrollViewInsets = NO;
}
状态跟踪
-
之前提到过跟踪状态(tracking)。相关的属性有三个:tracking dragging decelerate,这三个属性表明了当前视图的滚动状态。
-
tracking:
只读,一旦用户开始触摸视图(也许还没有开始拖动),该属性值为YES -
dragging:
只读,当用户开始拖动(手指已经在屏幕上滑动一段距离了),该属性值为YES -
decelerate:
只读,当用户松开手指,但视图仍在滚动时,该值返回YES -
zooming:
只读,用户是否正在进行缩放手势。 -
zoomBouncing:
只读,当缩放超过最大或者最小范围的时候,回弹到最大最小范围的过程中,该值返回YES。
状态条显示indicatorStyle
showsHorizontalScrollIndicator
showsVerticalScrollIndicator
scrollIndicatorInsets ``flashScrollIndicators
-
indicatorStyle:
状态条的风格,默认为UIScrollViewIndicatorStyleDefault,除此之外还有 UIScrollViewIndicatorStyleBlack,UIScrollViewIndicatorStyleWhite其他两种风格,可以用来和环境配色 -
showsHorizontalScrollIndicator:
当处于跟踪状态(tracking)时,也就是横向滚动的时候,是否显示水平状态条,默认为yes。 -
showsVerticalScrollIndicator:
当处于跟踪(tracing)状态,也就是竖直滚动时,是否显示纵向滚动条,默认为yes -
scrollIndicatorInsets:
状态条和scrollview的距离 -
flashScrollIndicator:
短暂的显示一下状态条,当你将scrollview显示在最上面时,需要调用一下该方法
网友评论