美文网首页
UIscrollview 属性

UIscrollview 属性

作者: 若水water | 来源:发表于2020-01-09 11:54 被阅读0次

    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显示在最上面时,需要调用一下该方法

    相关文章

      网友评论

          本文标题:UIscrollview 属性

          本文链接:https://www.haomeiwen.com/subject/hkfyactx.html