UIscrollview 属性

2020-01-09  本文已影响0人  若水water

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));
if (@available(iOS 11.0, *)) {
        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
        self.automaticallyAdjustsScrollViewInsets = NO;
}
状态跟踪
状态条显示indicatorStyle showsHorizontalScrollIndicator showsVerticalScrollIndicator scrollIndicatorInsets ``flashScrollIndicators
上一篇 下一篇

猜你喜欢

热点阅读