当不设置额外滚动范围属性时的代码和运行结果:
- (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 后如果其改变的位置超过了你加的范围它的镜头最多移到你加范围的最大位置。
iOS开发:深入理解scrollView的contentOffset与contentInset
本文探讨了iOS开发中UIScrollView的contentOffset和contentInset的区别。通过不同代码示例展示了如何设置contentSize、contentOffset和contentInset,并分析了它们对滚动效果的影响。当设置contentInset时,它会扩大滚动视图的显示区域,而contentOffset则决定了内容初始显示的位置。当contentOffset超出contentInset设定的边界,滚动视图的镜头将停止在最大范围内。
2434

被折叠的 条评论
为什么被折叠?



