UIScrollView

UIScrollView

  • 概念:UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容;
  • 特点:
    • 超出UIScrollView自身尺寸的内容会自动隐藏;
    • 用户可以通过手势拖动来查看超出边框(隐藏)的内容;

一、UIScrollView的使用步骤:

  • 1.将需要展示的内容添加到UIScrollView中(一般内容的尺寸都比UIScrollView本身的尺寸大,可以通过滚动来展示);
  • 2.设置UIScrollView的contentSize属性,也就是告诉UIScrollView他可以滚动的范围;

二、UIScrollView常见属性:

  • 1.contentSize:表示UIScrollView内容的尺寸,滚动范围(能滚多远)

    @property(nonatomic) CGPoint contentSize;
  • 2.contentOffset:表示UIScrollView滚动的位置(内容左上角与scrollView左上角的间距值)

    @property(nonatomic) CGPoint contentOffset;
  • 3.contentInset:表示能够在UIScrollView的4周增加额外的滚动区域,一般用来避免scrollView的内容被其他控件挡住

    @property(nonatomic) UIEdgeInsets contentInset; // 属性定义(官方文档)
    self.scrollView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0); // 设置contentInset,按逆时针方向从上开始
    
三、UIScrollView其他属性:
  • 1.bounces:设置UIScrollView是否需要弹簧效果

    @property(nonatomic) BOOL bounces;
  • 2.scrollEnabled:设置UIScrollView是否能滚动

    @property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
  • 3.showsHorizontalScrollIndicator:是否显示水平滚动条

    @property(nonatomic) BOOL showsHorizontalScrollIndicator;
  • 4.showsVerticalScrollIndicator:是否显示垂直滚动条

    @property(nonatomic) BOOL showsVerticalScrollIndicator;

四、UIScrollView的代理(delegate):

  • 当UIScrollView发生一系列的滚动操作时,会自动通知它的代理(delegate)对象,给它的代理发送相应的消息,让代理得知它的滚动情况后执行相应的动作
  • 要想成为UIScrollView的delegate,是有条件的,代理对象需遵守协议,并且实现协议中对应的方法才能监听UIScrollView的滚动过程
  • 协议中的方法:

    • 1.用户开始拖拽时调用

      - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
    • 2.滚动到某个位置时调用

       - (void)scrollViewDidScroll:(UIScrollView *)scrollView;
    • 3.用户结束拖拽时调用

       - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

五、UIScrollView和控制器:

  • 一般情况下,就设置UIScrollView所在的控制器为 UIScrollView的delegate;
  • 设置控制器为UIScrollView的delegate有2种方法:

    • 1.通过代码:(self就是控制器)

      self.scrollView.delegate = self;
    • 2.通过脱线的方式:右击UIScrollView选择delegate脱线到控制器;
  • 控制器应该遵守UIScrollViewDelegate协议
  • 实现协议中定义的相关方法

六、UIScrollView的缩放

  • 缩放原理:
    • 当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容)
    • 当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的viewForZoomingInScrollView:方法,这个方法返回的控件就是需要进行缩放的控件
  • 实现缩放的步骤

    • 1.设置UIScrollView的代理对象,(一般情况下,就设置UIScrollView所在的控制器为 UIScrollView的delegate)
    • 2.设置缩小的最小比例minimumZoomScale
    • 3.设置放大的最大比例maximumZoomScale
    • 4.让代理对象实现下面的方法,返回需要缩放的视图控件

      -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
  • 与缩放相关的其他代理方法

    • 1.正在缩放的时候调用

      - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view;
    • 2.缩放完毕的时候调用
       - (void)scrollViewDidZoom:(UIScrollView *)scrollView
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值