У меня есть два вложенных UIScrollViews: родительский объект ограничен горизонтальным поисковым вызовом, а ребенок ограничен вертикальной прокруткой. Содержимое представляет собой одно большое представление, которое можно свободно перемещать, но привязывается к одной из трех горизонтальных секций. Поведение типов вложенных прокруток по умолчанию позволяет выполнять только прокрутку в одном направлении за раз, но я хотел разрешить одновременное перетаскивание в обоих направлениях, чтобы сохранить ощущение манипулирования одним большим видом.Вложенная прокрутка UIScrollViews одновременно
Мое настоящее решение участвует изолируя жест вертикальный вид скроллинга и установив его делегатом на мой контроллер зрения:
for (UIGestureRecognizer *gesture in scrollView.gestureRecognizers)
if ([gesture isKindOfClass:[UIPanGestureRecognizer class]])
gesture.delegate = self;
Затем я применил метод делегата, чтобы позволить жесты зрения пейджинговой одновременно распознавать с панорамирование жест зрения прокрутки:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (gestureRecognizer.view == scrollView && otherGestureRecognizer.view == pageView)
return YES; // allow simultaneous scrolling of pageView and scrollView
return NO;
}
Это решение в основном работает, но он будет иногда действовать Glitchy, когда я перетащите его вокруг, особенно, когда я переместить его быстро с помощью мыши или перетащите его прошлое границы обзора. В частности, один из видов прокрутки будет временно возвращаться туда, где он был запущен, как если бы этот жест был отменен, но затем он отскочит, если я продолжу прокрутку.
Что я хочу знать, если есть более простой или более надежный метод для прокрутки, подобный этому, который я упустил, или если есть что-то, что я могу сделать, чтобы устранить глючное поведение.
Я сделал что-то подобное, я думаю вам, и он работает идеально. Вы пытаетесь в основном иметь большую область для прокрутки вокруг, где постоянно находится верхняя и левая области, говорящие пользователю, где они находятся? – Rudiger
Не совсем; то, что я показываю, это три дерева талантов для класса в MMO-игре. Вместо того, чтобы рассматривать каждое дерево как независимую страницу, я хотел разрешить свободное перемещение вида, но привязать его к одному из деревьев при отпускании перетаскивания.Я видел другие приложения, которые используют подобное поведение, в частности приложение WoW Armory, которое отображает деревья талантов для этой игры. – trevorsm
Ах, пропустите понимание, я немного оглянусь назад, если я что-то придумаю – Rudiger