美文网首页
iOS中的UIScrollView 滚动视图

iOS中的UIScrollView 滚动视图

作者: TK001 | 来源:发表于2017-09-24 20:14 被阅读0次

    UIScrollView这个类(也就是滚动视图),可以让我们展示比window尺寸大的内容。用户可以通过手势来实现视图的滚动和缩放。

    有一个很好的例子,就是今日头条上的滑动目录就是基于ScrollView实现的

    UIScrollView继承于UIView,是UITableView和UITextView等UIKit类的父类。
    scrollView frame 相当于是这是View显示在界面上的大小

    //创建
     UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(50, 50, 314, 500)];
    
     //设置背景颜色
     scrollView.backgroundColor = [UIColor redColor];
    

    设置contentSize,这是UIScrollView的内容视图的尺寸,通常contentSize大于UIScrollView的frame (整个内容的大小)

     scrollView.contentSize = CGSizeMake(314*3, 500); //非常重要
     //设置是否可以滚动
     scrollView.scrollEnabled = YES;   // 默认为YES
     //设置是否可以整页滚动
     scrollView.pagingEnabled = YES;  
     // 默认为NO。如果为YES,滑动会停止在视图边界长度的倍数上。
    

    设置偏移量contentOffset

     //CGPoint类型,默认为CGPointZero
     scrollView.contentOffset = CGPointMake(314, 200);
    

    设置是否显示滚动条

    //显示水平方向的滚动条(默认YES)
    scrollView.showsHorizontalScrollIndicator = NO;
    //显示垂直方向的滚动条(默认YES)
    scrollView.showsVerticalScrollIndicator = NO;
    

    设置是否反弹

    scrollView.bounces = NO;
    // 默认为YES。如果该属性为YES,视图滚动时可以越过边界,越过边界后会被弹回。(使用时如果滑到边界时是否会有回弹效果)
    

    如果bounces设为NO,以下两个属性不论是不是YES都不会奏效:

    //控制滚动视图遇到垂直方向是否反弹
    scrollView.alwaysBounceVertical = YES;// 默认为NO
    //如果该属性和bounces同时为YES,那么即使contentSize的height小于frame的height,竖直方向的拖拽也是允许的。
    
    //控制滚动视图遇到水平方向是否反弹    
    scrollView.alwaysBounceHorizontal = YES;//默认为NO
    //如果该属性和bounces同时为YES,那么即使contentSize的width小于frame的width,水平方向的拖拽也是允许的。
    
    //控制滚动视图遇到水平方向是否反弹    
    scrollView.alwaysBounceHorizontal = YES;//默认为NO
    //如果该属性和bounces同时为YES,那么即使contentSize的width小于frame的width,水平方向的拖拽也是允许的。
    

    其他设置

    • delegate: scrollView的委托对象,该委托对象必须实现UIScrollViewDelegate协议,这些方法会在合适的时候被调用
    • scrollToTop:是否启动“滚动至顶端”手势,默认值为YES。当用户使用了“滚动至顶端”手势(轻击状态栏)时,系统会要求离状态栏最近的scrollView滚动到顶端,如果scrollToTop设置为NO,则该scrollView的delegate的scrollViewShouldScrollToTop:方法会返回NO,不会滚动到顶端。否则,则会滚动到顶端。滚动到顶端之后,会给delegate发送scrollViewDidScrollToTop:消息。需要注意的是,在iphone上,如果有多个scrollview的scrollToTop参数设置为YES的时候,“滚动至顶端”手势会失效。
    • decelerationRate: 手指滑动后抬起,页面的减速速率。可以使用UIScrollViewDecelerationRateNormal和UIScrollViewDecelerationRateFast常量值来设置合理的减速速率。

    相关文章

      网友评论

          本文标题:iOS中的UIScrollView 滚动视图

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