当不设置额外滚动范围属性时的代码和运行结果:
- (void)viewDidLoad {
[super viewDidLoad];
//设置滚动范围
self.scrollView.contentSize=CGSizeMake(self.headView.frame.size.width, self.headView.frame.size.height);
//设置偏移大小
self.scrollView.contentOffset=CGPointMake(-20, -20);
// Do any additional setup after loading the view, typically from a nib.
}
当设置额外滚动范围属性时的代码和运行结果(此时都设置为0):
- (void)viewDidLoad {
[super viewDidLoad];
//设置滚动范围
self.scrollView.contentSize=CGSizeMake(self.headView.frame.size.width, self.headView.frame.size.height);
//设置偏移大小
self.scrollView.contentOffset=CGPointMake(-20, -20);
//设置额外滚动大小
self.scrollView.contentInset=UIEdgeInsetsMake(0, 0, 0, 0);
}
当设置额外滚动范围属性时的代码和运行结果(此时将上设置为10):
- (void)viewDidLoad {
[super viewDidLoad];
//设置滚动范围
self.scrollView.contentSize=CGSizeMake(self.headView.frame.size.width, self.headView.frame.size.height);
//设置偏移大小
self.scrollView.contentOffset=CGPointMake(-20, -20);
//设置额外滚动大小
self.scrollView.contentInset=UIEdgeInsetsMake(10, 0, 0, 0);
}
当设置额外滚动范围属性时的代码和运行结果(此时将左设置为10):
- (void)viewDidLoad {
[super viewDidLoad];
//设置滚动范围
self.scrollView.contentSize=CGSizeMake(self.headView.frame.size.width, self.headView.frame.size.height);
//设置偏移大小
self.scrollView.contentOffset=CGPointMake(-20, -20);
//设置额外滚动大小
self.scrollView.contentInset=UIEdgeInsetsMake(0, 10, 0, 0);
}
当设置额外滚动范围属性时的代码和运行结果(此时将上和左设置为10):
- (void)viewDidLoad {
[super viewDidLoad];
//设置滚动范围
self.scrollView.contentSize=CGSizeMake(self.headView.frame.size.width, self.headView.frame.size.height);
//设置偏移大小
self.scrollView.contentOffset=CGPointMake(-20, -20);
//设置额外滚动大小
self.scrollView.contentInset=UIEdgeInsetsMake(10, 10, 0, 0);
}
当设置额外滚动范围属性时的代码和运行结果(此时将下设置为10):
- (void)viewDidLoad {
[super viewDidLoad];
//设置滚动范围
self.scrollView.contentSize=CGSizeMake(self.headView.frame.size.width, self.headView.frame.size.height);
//设置偏移大小
self.scrollView.contentOffset=CGPointMake(-20, -20);
//设置额外滚动大小
self.scrollView.contentInset=UIEdgeInsetsMake(0, 0, 10, 0);
}
个人的见解:scrollView.contentInset 默认情况下其初始值都为0;当设置了初始值时(不为零),它相当于给scrollView的范围进行了扩大,并加了一堵墙,如果把scrollView中的图片理解为一个背景,将scrollView理解为一个镜头,通过改变scrollView.contentOffset的值就可以改变镜头的初始化位置,但是当你设置了scrollView.contentInset 后如果其改变的位置超过了你加的范围它的镜头最多移到你加范围的最大位置。