Я посмотрел на stackoverflow, но не смог найти ответ, который точно отвечает на мой вопрос. Если я что-то пропустил, пожалуйста, укажите мне правильный вопрос.
Вот мой сценарий -
Изначально у меня был случай, когда размер моего вертикального окна был установлен, поэтому мне было легко полностью ограничить прокрутку, выполнив это -
CGRect scrollContainer = CGRectMake(0, 0, 320, 440);
self.baseView = [[UIScrollView alloc] initWithFrame:scrollContainer];
self.baseView.contentSize = CGSizeMake(6400, 440);
self.baseView.bounces = NO;
self.baseView.pagingEnabled = NO;
self.baseView.scrollEnabled = NO;
Основываясь на движении телефона, я смог программно прокрутить -
CGPoint scrollOffset = CGPointMake(x*20, 0);
[self.baseView setContentOffset:scrollOffset];
В моем новом требовании вертикальный контент резко увеличивается, поэтому у меня будет такой размер содержимого, как
self.baseView.contentSize = CGSizeMake(6400, 4400);
Я все еще хочу программно прокручивать по горизонтали, но дать пользователю возможность прокручивать ТОЛЬКО вертикально по касанию. Итак, я предполагаю, что мне придется сказать scrollEnabled = YES. Но это позволяет пользователю прокручивать в обоих направлениях.
Должен ли я фиксировать события касания и переопределять их? Как бы я узнал, если бы это была горизонтальная или вертикальная прокрутка? Что произойдет, если это действие прокрутки по диагонали?
Я немного невежественен в этом вопросе, поэтому любые отзывы будут с благодарностью.