需求:scrollView内容居中显示,如果超出范围的话可滑动
1️⃣
一般会想,设置内容居中,于是乎:
[self.view addSubview:self.scrollView];
CGFloat originY = self.scrollView.frame.size.height*0.5 - (kCount * 80)*0.5;
for (int i = 0; i < kCount; i++) {
UIView *view = [[UIView alloc] init];
view.frame = CGRectMake(0, originY + i*80, 70, 80);
view.backgroundColor = RandomColor;
[self.scrollView addSubview:view];
}
self.scrollView.contentSize = CGSizeMake(0, kCount*80);
这样是居中了,如果kCount值大的时候,需要滑动,滑动会出bug。
2️⃣
for (int i = 0; i < kCount; i++) {
UIView *view = [[UIView alloc] init];
view.frame = CGRectMake(0, i*80, 70, 80);
view.backgroundColor = RandomColor;
[self.scrollView addSubview:view];
}
CGFloat height = self.view.frame.size.height-100;
self.scrollView.contentSize = CGSizeMake(0, kCount*80);
[self.scrollView setContentOffset:CGPointMake(0, (kCount*80 - height) * 0.5)];
这样才是正解!