51 UIScrollView使用

CGPoint contentOffset 监控目前滚动位置   表示从滚动视图的原点到内容视图的原点的偏移的点。
默认值为CGPointZero。
CGSize contentSize     滚动范围的大小   滚动区域必须 >= UIScrollView的size
UIEdgeInsets contentInset  视图在scrollView中位置  距离四边最远的距离


contentSize、contentInset和contentOffset 是 scrollView三个基本的属性。
contentSize: The size of the content view. 其实就是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。
contentOffset:The point at which the origin of the content view is offset from the origin of the scroll view. 是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,480),也就是y偏移了480 
contentInset:The distance that the content view is inset from the enclosing scroll view.是scrollview的contentview的顶点相对于scrollview的位置,例如你的contentInset = (0 ,100),那么你的contentview就是从scrollview的(0 ,100)开始显示 
/* 上拉刷新一般实现代码如下 */
//上拉加载更多  
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{  
      
    [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];  
    float offset=scrollView.contentOffset.y;  
    float contentHeight=scrollView.contentSize.height;  
    float sub=contentHeight-offset;  
    if ((scrollView.height-sub)>20) {//如果上拉距离超过20p,则加载更多数据  
        //[self loadMoreData];//此处在view底部加载更多数据  
    }  
}  
#import "ViewController.h"
#import "Masonry.h"
@interface ViewController ()

@property(nonatomic,weak) UIScrollView *scrollView;


@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self setupUI];
}


- (void)setupUI{
    
    
    UIScrollView *scrollView = [[UIScrollView alloc]init];
    scrollView.backgroundColor = [UIColor greenColor];
    
    [self.view addSubview:scrollView];
    self.scrollView = scrollView;
    
    self.scrollView.delegate = self;

    UIView *pictureImage = [UIView new];
    pictureImage.backgroundColor = [UIColor redColor];
    [scrollView addSubview:pictureImage];
    
    //scrollView滚动范围
    scrollView.contentSize = CGSizeMake(400, 300);
    
    scrollView.scrollEnabled = true;
    scrollView.userInteractionEnabled = true;
    
    [scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
        
        make.size.mas_equalTo(CGSizeMake(400,400));
        make.center.equalTo(self.view);
    }];
    
    [pictureImage mas_makeConstraints:^(MASConstraintMaker *make) {
        
        make.top.left.equalTo(scrollView);
        make.size.mas_equalTo(CGSizeMake(300, 300));
    }];
    
    scrollView.contentInset = UIEdgeInsetsMake(20, 30, 40, 50);
    
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    
    CGPoint offset = self.scrollView.contentOffset;
    
    offset.x -= 10;
    offset.y -= 10;
    
    [UIView animateWithDuration:2 animations:^{
        self.scrollView.contentOffset = offset;
    }];
    
//    [self.scrollView setContentOffset:offset animated:true];
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    NSLog(@"contentView = %@",NSStringFromCGPoint(self.scrollView.contentOffset));
}

@end


2017-05-20 23:04:23.291 练习[62586:6610339] contentView = {0, -20}
2017-05-20 23:04:33.712 练习[62586:6610339] contentView = {-13.333333333333334, -20}
2017-05-20 23:04:33.734 练习[62586:6610339] contentView = {-33, -20}
2017-05-20 23:04:33.757 练习[62586:6610339] contentView = {-43, -20}
2017-05-20 23:04:33.780 练习[62586:6610339] contentView = {-47.333333333333336, -20}
2017-05-20 23:04:33.802 练习[62586:6610339] contentView = {-49.333333333333336, -20}
2017-05-20 23:04:33.825 练习[62586:6610339] contentView = {-50, -20}
2017-05-20 23:04:33.847 练习[62586:6610339] contentView = {-50.666666666666664, -20}
2017-05-20 23:04:33.870 练习[62586:6610339] contentView = {-51.333333333333336, -20}
2017-05-20 23:04:33.892 练习[62586:6610339] contentView = {-52, -20}
2017-05-20 23:04:33.914 练习[62586:6610339] contentView = {-52.333333333333336, -20}
2017-05-20 23:04:33.942 练习[62586:6610339] contentView = {-53, -20}
2017-05-20 23:04:33.960 练习[62586:6610339] contentView = {-53.333333333333336, -20}
2017-05-20 23:04:33.982 练习[62586:6610339] contentView = {-54, -20}
2017-05-20 23:04:34.010 练习[62586:6610339] contentView = {-54.666666666666664, -20}
2017-05-20 23:04:34.027 练习[62586:6610339] contentView = {-56, -20}
2017-05-20 23:04:34.050 练习[62586:6610339] contentView = {-57.333333333333336, -20}
2017-05-20 23:04:34.074 练习[62586:6610339] contentView = {-58, -20}
2017-05-20 23:04:34.094 练习[62586:6610339] contentView = {-59, -20}
2017-05-20 23:04:34.117 练习[62586:6610339] contentView = {-60.666666666666664, -20}
2017-05-20 23:04:34.141 练习[62586:6610339] contentView = {-62.333333333333336, -20}
2017-05-20 23:04:34.162 练习[62586:6610339] contentView = {-63, -20}
2017-05-20 23:04:34.184 练习[62586:6610339] contentView = {-63.333333333333336, -20}
2017-05-20 23:04:34.207 练习[62586:6610339] contentView = {-63.666666666666664, -20}
2017-05-20 23:04:34.229 练习[62586:6610339] contentView = {-64, -20}
2017-05-20 23:04:34.252 练习[62586:6610339] contentView = {-64.333333333333329, -20}
2017-05-20 23:04:34.353 练习[62586:6610339] contentView = {-64.666666666666671, -20}
2017-05-20 23:04:34.422 练习[62586:6610339] contentView = {-65, -20}
2017-05-20 23:04:34.443 练习[62586:6610339] contentView = {-65.333333333333329, -20}
2017-05-20 23:04:34.466 练习[62586:6610339] contentView = {-65.666666666666671, -20}
2017-05-20 23:04:34.490 练习[62586:6610339] contentView = {-66, -20}
2017-05-20 23:04:34.511 练习[62586:6610339] contentView = {-66.333333333333329, -20}
2017-05-20 23:04:34.533 练习[62586:6610339] contentView = {-67, -20}
2017-05-20 23:04:34.556 练习[62586:6610339] contentView = {-68, -20}
2017-05-20 23:04:34.578 练习[62586:6610339] contentView = {-68.333333333333329, -20}
2017-05-20 23:04:34.645 练习[62586:6610339] contentView = {-68.666666666666671, -20}
2017-05-20 23:04:35.007 练习[62586:6610339] contentView = {-68.333333333333329, -20}
2017-05-20 23:04:35.066 练习[62586:6610339] contentView = {-52, -20}
2017-05-20 23:04:35.074 练习[62586:6610339] contentView = {-50.333333333333336, -20}
2017-05-20 23:04:35.141 练习[62586:6610339] contentView = {-40.666666666666664, -20}
2017-05-20 23:04:35.206 练习[62586:6610339] contentView = {-35.666666666666664, -20}
2017-05-20 23:04:35.281 练习[62586:6610339] contentView = {-32.666666666666664, -20}
2017-05-20 23:04:35.319 练习[62586:6610339] contentView = {-32, -20}
2017-05-20 23:04:35.333 练习[62586:6610339] contentView = {-31.666666666666668, -20}
2017-05-20 23:04:35.363 练习[62586:6610339] contentView = {-31.333333333333332, -20}
2017-05-20 23:04:35.402 练习[62586:6610339] contentView = {-31, -20}
2017-05-20 23:04:35.419 练习[62586:6610339] contentView = {-30.666666666666668, -20}
2017-05-20 23:04:35.475 练习[62586:6610339] contentView = {-30.333333333333332, -20}
2017-05-20 23:04:35.476 练习[62586:6610339] contentView = {-30, -20}
2017-05-20 23:04:36.412 练习[62586:6610339] contentView = {-39, -20}
2017-05-20 23:04:36.437 练习[62586:6610339] contentView = {-58, -20}
2017-05-20 23:04:36.458 练习[62586:6610339] contentView = {-73.333333333333329, -20}
2017-05-20 23:04:36.480 练习[62586:6610339] contentView = {-81.666666666666671, -20}
2017-05-20 23:04:36.502 练习[62586:6610339] contentView = {-86.333333333333329, -20}
2017-05-20 23:04:36.528 练习[62586:6610339] contentView = {-89, -20}
2017-05-20 23:04:36.547 练习[62586:6610339] contentView = {-91.333333333333329, -20}
2017-05-20 23:04:36.569 练习[62586:6610339] contentView = {-92, -20}
2017-05-20 23:04:36.762 练习[62586:6610339] contentView = {-69.333333333333329, -20}
2017-05-20 23:04:36.821 练习[62586:6610339] contentView = {-55.333333333333336, -20}
2017-05-20 23:04:36.833 练习[62586:6610339] contentView = {-53, -20}
2017-05-20 23:04:36.875 练习[62586:6610339] contentView = {-46.666666666666664, -20}
2017-05-20 23:04:36.878 练习[62586:6610339] contentView = {-46.333333333333336, -20}
2017-05-20 23:04:36.954 练习[62586:6610339] contentView = {-38.333333333333336, -20}
2017-05-20 23:04:36.970 练习[62586:6610339] contentView = {-37.333333333333336, -20}
2017-05-20 23:04:36.992 练习[62586:6610339] contentView = {-36, -20}
2017-05-20 23:04:37.063 练习[62586:6610339] contentView = {-33.333333333333336, -20}
2017-05-20 23:04:37.116 练习[62586:6610339] contentView = {-32, -20}
2017-05-20 23:04:37.135 练习[62586:6610339] contentView = {-31.666666666666668, -20}
2017-05-20 23:04:37.173 练习[62586:6610339] contentView = {-31.333333333333332, -20}
2017-05-20 23:04:37.179 练习[62586:6610339] contentView = {-31, -20}
2017-05-20 23:04:37.244 练习[62586:6610339] contentView = {-30.666666666666668, -20}
2017-05-20 23:04:37.320 练习[62586:6610339] contentView = {-30.333333333333332, -20}
2017-05-20 23:04:37.321 练习[62586:6610339] contentView = {-30, -20}
2017-05-20 23:04:37.908 练习[62586:6610339] contentView = {-40, -20}
2017-05-20 23:04:37.931 练习[62586:6610339] contentView = {-56.333333333333336, -20}
2017-05-20 23:04:37.953 练习[62586:6610339] contentView = {-69.333333333333329, -20}
2017-05-20 23:04:37.976 练习[62586:6610339] contentView = {-78.333333333333329, -20}
2017-05-20 23:04:37.994 练习[62586:6610339] contentView = {-80, -20}
2017-05-20 23:04:38.010 练习[62586:6610339] contentView = {-81.666666666666671, -20}
2017-05-20 23:04:38.032 练习[62586:6610339] contentView = {-82.333333333333329, -20}
2017-05-20 23:04:38.056 练习[62586:6610339] contentView = {-83, -20}
2017-05-20 23:04:38.077 练习[62586:6610339] contentView = {-83.666666666666671, -20}
2017-05-20 23:04:38.181 练习[62586:6610339] contentView = {-56.666666666666664, -20}
2017-05-20 23:04:38.193 练习[62586:6610339] contentView = {-54, -20}
2017-05-20 23:04:38.228 练习[62586:6610339] contentView = {-47.666666666666664, -20}
2017-05-20 23:04:38.255 练习[62586:6610339] contentView = {-44, -20}
2017-05-20 23:04:38.312 练习[62586:6610339] contentView = {-38, -20}
2017-05-20 23:04:38.335 练习[62586:6610339] contentView = {-36.666666666666664, -20}
2017-05-20 23:04:38.407 练习[62586:6610339] contentView = {-33.333333333333336, -20}
2017-05-20 23:04:38.455 练习[62586:6610339] contentView = {-32.333333333333336, -20}
2017-05-20 23:04:38.496 练习[62586:6610339] contentView = {-31.666666666666668, -20}
2017-05-20 23:04:38.515 练习[62586:6610339] contentView = {-31.333333333333332, -20}
2017-05-20 23:04:38.524 练习[62586:6610339] contentView = {-31, -20}
2017-05-20 23:04:38.567 练习[62586:6610339] contentView = {-30.666666666666668, -20}
2017-05-20 23:04:38.647 练习[62586:6610339] contentView = {-30.333333333333332, -20}
2017-05-20 23:04:38.647 练习[62586:6610339] contentView = {-30, -20}
2017-05-20 23:04:46.773 练习[62586:6610339] contentView = {-20.333333333333332, -20}
2017-05-20 23:04:46.801 练习[62586:6610339] contentView = {13.333333333333334, -20}
2017-05-20 23:04:46.818 练习[62586:6610339] contentView = {34, -20}
2017-05-20 23:04:46.841 练习[62586:6610339] contentView = {45, -20}
2017-05-20 23:04:46.874 练习[62586:6610339] contentView = {47.666666666666664, -20}
2017-05-20 23:04:46.919 练习[62586:6610339] contentView = {48.333333333333336, -20}
2017-05-20 23:04:46.942 练习[62586:6610339] contentView = {50.666666666666664, -20}
2017-05-20 23:04:46.965 练习[62586:6610339] contentView = {52.666666666666664, -20}
2017-05-20 23:04:46.987 练习[62586:6610339] contentView = {55, -20}
2017-05-20 23:04:47.009 练习[62586:6610339] contentView = {56, -20}
2017-05-20 23:04:47.032 练习[62586:6610339] contentView = {57, -20}
2017-05-20 23:04:47.054 练习[62586:6610339] contentView = {58.666666666666664, -20

你可能感兴趣的:(51 UIScrollView使用)