我很难理解一些您可能觉得简单的问题UIScrollView
。
为什么我们增加
contentSize
而不是增加边界UIScrollView
?实际上,我不明白界限和contentSize
做什么。当我设置
pagingEnabled
为 YES 时,scrollView 怎么知道在哪里停止滚动?我想在我的
UIScrollView
. (pagingEnabled = YES
) 我在网上搜索,我找到了以下代码,rob mayoff 写的:
- (void)viewDidLoad { [super viewDidLoad]; NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor greenColor], [UIColor blueColor], nil]; #define kGutterWidth 20 UIScrollView *scrollView = self.scrollView; CGRect scrollViewFrame = scrollView.frame; scrollViewFrame.size.width += kGutterWidth; scrollView.frame = scrollViewFrame; CGSize scrollViewSize = scrollView.bounds.size; for (int i = 0; i < colors.count; i++) { CGRect frame = CGRectMake(scrollViewSize.width * i, 0, scrollViewSize.width - kGutterWidth, scrollViewSize.height); UIView *subview = [[UIView alloc] initWithFrame:frame]; subview.backgroundColor = [colors objectAtIndex:i]; [scrollView addSubview:subview]; [subview release]; } scrollView.contentSize = CGSizeMake( colors.count * scrollViewSize.width, scrollViewSize.height); }
代码来源: 如何创建分页滚动视图,视图之间有空间
这段代码可以正常工作,但只要我看不懂也没关系。
我知道最终页面将以原始大小加载,但我不明白它是如何发生的,因为每个页面都减去了 kGutterWidth。
为什么rob用kGutterWidth增加了scrollView的frame?
好吧,这个问题可能听起来很愚蠢,但我真的不明白。在代码中,Rob 创建了一个名为的新 scrollView 对象
scrollView
。它的价值等于self.scrollView
价值。好吧,我不明白对 , 所做的更改是如何scrollView
影响self.scrollView
的,因为它们是不同的对象。它们的内存地址不同。
我很长一段时间都在努力理解这些问题。今天我决定把它们写在这里。
谢谢你。