1.什么是UIScrollView?

             简单来说UIScrollView就是一个可以用来实现滚动和缩放的UI控件。UIScrollView类为显示大于应用窗口的内容提供支持。通过它,用户可以使用滑动手势来滚动,并可以使用扩张/收缩手势来放大缩小部分内容。


   2.常用属性:

              1)  contentSize:

                             内容视图的大小,单位是点。默认值是CGSizeZero.要比scrollView的size大。

              2)  contentInset:

                              表示内容视图从封闭滚动视图中被嵌入的距离。该属性增加围绕内容的滚动区域。单位为点。

              3)  contentOffset:

                               表示从滚动视图的原点到内容视图的原点的偏移的距离。

               4)  bounces:

                                控制滚动视图是否具有弹簧效果。若该值为YES,表示滚动视图具备弹簧效果;若值为NO,滚动视图会在到达边缘时立即停止。默认值为YES。一般不会关闭这个效果。

               5)  alwaysBounceVertical:

                                 布尔值,规定滚动视图是在垂直方向上否总是具有弹簧效果(即使不设置contentSize也可以有弹簧效果)。前提是bounces = YES;

               6)  alwaysBouncesHorizontal:

布尔值,规定滚动视图是在水平方向上否总是具有弹簧效果(即使不设置contentSize也可以有弹簧效果)。前提是bounces = YES;

               7)  scrollEnabled:

                                    布尔值。设置是否可以滚动。若该值为YES,则允许滚动;若该值为NO,则禁止滚动。默认值为YES;当滚动被禁止时,滚动视图将不再接受触摸事件,滚动视图会将事件传送至响应链中。

               8)  showsHorizontalScrollIndicator:

                                    布尔值。控制水平滚动指示器是否可见。默认值为YES。指示器会在跟踪时显示并在跟踪之后消失。

               9)  showsVerticalScrollIndicator:

控制垂直滚动指示器是否可见。默认值为YES。指示器会在跟踪时显示并在跟踪之后消失。

10)  zoomScale:

                                      指定当前应用于滚动视图的内容的缩放因子。可以通过minimumZoomScale设置最小的缩小倍数;maxmumZoomScale设置最大的放大倍数。


  3.用法:


#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;

@property (weak, nonatomic) IBOutlet UIImageView *imageView;


@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    /**
     scrollView中的内容滚动就必须要设置:    滚动范围
     contentSize:   子控件的大小,限定滚动的范围
     contentSize在设置的时候一定要比scrollView的size要大
     如果size中的宽度设为0,就表示横向中不能滚动
     */
    
    _scrollView.contentSize = self.imageView.frame.size;//(第四步时关闭)
    
    /**
     2.
     隐藏滚动条
     Horizontal:    水平
     Vertical:  垂直
     
     */
    _scrollView.showsHorizontalScrollIndicator  = NO;
    _scrollView.showsVerticalScrollIndicator = NO;
    
    /**
     3.
     bounces:   弹簧效果
     一般不关闭
     
     */
    _scrollView.bounces = YES;
    
    
    /**
     
     不设置contentSize的时候,弹簧效果开启,依然看不到

     */
    
    /**
     4.
     下面的方法可以在不设置contentSize清空下,在水平和垂直方向上依然有弹簧效果
     前提是:scrollView.bounces = YES;
     alwaysBounceHorizontal
     alwaysBounceVertical
     */
    _scrollView.alwaysBounceHorizontal = YES;
    _scrollView.alwaysBounceVertical = YES;
    
    
    /**
     5.
     contentInset:  内边距
     没有设置contentInset的时候,拖动后imageView默认会停留在初始位置
     contentInset:  拖动后,会停留在设置 的内边距位置
     
     UIEdgeInsetsMake:结构体 对应的是
     top, left, bottom, right
     
     */
    
    _scrollView.contentInset = UIEdgeInsetsMake(10, 20, 30, 40);
    
    
    /**
     6.
     contentOffset: offset偏移量 ,滚动到了某个位置
     
     */
    
    _scrollView.contentOffset = CGPointMake(100, 0);
    
    
    /**
     7.scrollView 不能滚动的原因
        1.contentSize 比 scrollView的size小
        2.关闭用户交互:   _scrollView.userInteractionEnabled = NO;
        3. _scrollView.scrollEnabled = NO;

     */
    _scrollView.scrollEnabled = YES;
}



@end