Я ищу небольшую помощь.Я обычно довольно хорошо нахожу то, что мне нужно, но это сложно.
Вот сцена для моего тестового приложения: у меня есть 2 просмотра прокрутки, которые имеют размер 1024x85, и они перемещаются только по горизонтали.У меня также есть UISwitch под ними.Над видами прокрутки у меня есть две метки, которые отображают смещение содержимого каждого вида прокрутки при его перемещении (чтобы я мог видеть, что происходит).
Что я хочу сделать: после того, как пользователь передвинет каждую сторону видов насторона Я хотел бы использовать UIS-переключатель для блокировки этих скролл-обзоров вместе, где бы они ни находились.
Это обновленный код:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint p = scrollOne.contentOffset;
CGPoint r = scrollTwo.contentOffset;
// Print the contentOffset labels
scrollOneLabel.text = [NSString stringWithFormat:@"%.2f", p.x];
scrollTwoLabel.text = [NSString stringWithFormat:@"%.2f", r.x];
// If lock is on, the distance between offsets is locked (but limited to max and min)
if (lockSwitch.on) {
NSInteger offset = scrollOne.contentOffset.x - scrollTwo.contentOffset.x;
if (scrollView == scrollOne) {
NSInteger maxOffset = scrollTwo.contentSize.width - scrollTwo.frame.size.width;
[scrollTwo setContentOffset: CGPointMake(MIN(MAX(0.0,scrollOne.contentOffset.x - offset), maxOffset), 0.0)];
} else if (scrollView == scrollTwo) {
NSInteger maxOffset = scrollOne.contentSize.width - scrollOne.frame.size.width;
[scrollOne setContentOffset: CGPointMake(MIN(MAX(0.0,scrollTwo.contentOffset.x + offset), maxOffset), 0.0)];
}
}
// If the lock is not on, both move independently
}
Он блокирует просмотры скролла вместе, но как только я перемещаю одно из представлений прокрутки, второе представление прокрутки переходит к тому же смещению содержимого, что и первое.Я пытаюсь заблокировать их там, где они находятся в данный момент, вместо того, чтобы выстраивать их в очередь, когда пользователь касается одного из них.
Заранее благодарен за любую помощь.