Створюючи перегляд прокрутки, переконайтесь, що ви встановили наступне:
scrollView.showsHorizontalScrollIndicator = false
scrollView.showsVerticalScrollIndicator = false
scrollView.pagingEnabled = true
Потім додайте свої підпрограми до скролера зі зміщенням, рівним їх індексу * висоті скролера. Це для вертикального скролера:
UIView * sub = [UIView new];
sub.frame = CGRectMake(0, index * h, w, subViewHeight);
[scrollView addSubview:sub];
Якщо запустити його зараз, подання розташовані на відстані один від одного, і з увімкненим підкачуванням вони прокручуються по одному.
Тоді помістіть це у свій метод viewDidScroll:
int index = scrollView.contentOffset.y / h;
float y = scrollView.contentOffset.y;
float p = (y / h)-index;
int subViewHeight = h-240;
int spacing = 30;
NSArray * array = scrollView.subviews;
for (UIView * sub in array){
int subIndex = (int)[array indexOfObject:sub];
float transform = (-h * subIndex);
transform += (subViewHeight + spacing) * subIndex;
transform += (h - subViewHeight - spacing) * p;
transform += index * (h - subViewHeight - spacing);
sub.transform = CGAffineTransformMakeTranslation(0, transform);
}
Кадри підпроектів все ще рознесені, ми просто переміщуємо їх разом за допомогою перетворення, коли користувач прокручує.
Крім того, ви маєте доступ до змінної p вище, яку ви можете використовувати для інших речей, таких як альфа-версія або перетворення в підпрограмах. Коли p == 1, ця сторінка відображається повністю, а точніше вона прагне до 1.