UIScrollView 是UIKit框架里面开发中使用非常频繁的控件,也是非常重要的控件.
UIScrollView继承至UIView,凡事可视组建都是继承制UIView。
UIScrollView的属性说明:

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,100,100)];
[self.view addSubView:scrollView];
scrollView.contentSize = CGSizeMake(200,200);// 设置scrollView的滚动范围,当contentSize的尺寸未设置或者小于scrollView的边框时,不能滚动。滚动范围为contentSize的宽高减去边框的宽高。
scrollView.clipsToBounds = NO; // 默认此属性为yes,属性为YES表示当UIScrollView的滚动范围超出了边框的范围的将被裁减掉。
scrollView.scrollEnable = NO;// 默认为YES,设置不能滚动;
scrollView.bounces = NO; // 默认为YES,为YES表示有滚动的弹簧效果,如果为NO,表示没有
scrollView.alwaysBounceVertical = yes;默认为NO,设置为YES当下拉、上啦时,可显示动画 scrollView.alwaysBounceHorizontal = YES;表示左右滑动的时候有动画
scrollView.showsHorizontalScrollIndicator = NO;// 默认显示水平滚动条,设置为NO表示不显示
scrollView.showVerticalScrollIndicator = NO; // 默认显示垂直滚动条,设置为NO表示不显示
**重点内容**
注意:不能通过索引去subViews数组访问scrollViews的字控件
例如:
    UIView *view =  scrollView.subviews.firstObject;不能这样实现
    因为scrollView上面默认添加了滚动条,实在需要通过索引去访问时,可以先隐藏掉滚动条


// 设置内容的偏移量
// 作用1:控制内容滚动的位置
// 作用2:得知内容滚动的位置
scrollView.contentOffset = CGPointMake(100,100);

// 通过动画让scrollView的内容滚动到指定的位置
 [scrollView setContentOffset:CGPointMake(10, 20) animated:YES];


****重点内容****
OC语法规定:不能修改OC对象的结构体属性的成员变量;

// 内边距
scrollView.contentInset = UIEdgeInsetsMake(10,20,30,40);

重点内容

关于内边距:

ios UIScrollView如何使用masonry布局_uiscrollview

UIScrollView的代理
常用的代理方法:

#pragma UIScrollViewDelegate
/**
 *  当scrollView正在滚动的时候就会调用
 */
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"%s",__func__);
}

/**
 *  用户即将开始拖拽scrollView时就会调用这个方法
 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"%s",__func__);
}

/**
 *  用户即将停止拖拽
 */
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    NSLog(@"%s",__func__);
}

/**
 *  用户已经停止拖拽时就会调用这个方法
 */
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (decelerate == NO) {
        NSLog(@"用户已经停止拖拽scrollView,停止滚动");
    }else{
        NSLog(@"用户已经停止拖拽scrollView,但scrollView 由于惯性继续滚动");
    }

    NSLog(@"%s",__func__);
}

/**
 *  用户减速完毕会调用,停止滚动
 */
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"%s", __func__);
}

UIScrollView的缩放子控件

// 1.0设置缩放比例
    scrollView.maximumZoomScale = 3.0f;
    scrollView.minimumZoomScale = 0.3f;
    // 2.0实现代理的方法
/**
 * 返回需要缩放的子控件(scrollView的子控件)
 */
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return nil;
}

UIScrollView分页功能

scrollView.pagingEnabled = YES; // 展示分页功能
// 分页的标准,以scrollView的标准为一页