iPhone - Вложенный UIScrollViews для горизонтальной подкачки страниц и вертикальной прокрутки

Я разрабатываю свое первое приложение для iPhone, и я был бы очень признателен за Вас вход парня на проблеме, которую я имею.

Я надеюсь реализовывать прокрутку и горизонтально и вертикально. Я хочу, чтобы горизонтальная прокрутка была разбита на страницы без вертикальной разбиваемой на страницы (прокрутка "обычно"). Единственный UIScrollView с набором pagingEnabled к ДА разобьет на страницы в обоих направлениях. Естественное решение состояло бы в том, чтобы вложить UIScrollView в другом, однако когда я делаю это, я не могу заставить "внутренний" UIScrollView прокручивать вообще. Кажется, что внешний "ест" все события касания, как в:

UIScrollView: подкачка страниц горизонтально, прокручивая вертикально?

Я считал что-то о "внутренней прокрутке", улучшаемой в SDK 3.0 и на самом деле когда я добавляю внутренний UITableView вместо UIScrollView работы прокрутки безупречно. Так как UITableView разделяет UIScrollView на подклассы, я предполагаю, что мое желаемое поведение должно быть достижимым путем создания моего собственного подкласса UIScrollView.

Действительно ли это - правильный подход? Если так, на что должен быть похожим этот подкласс?

12
задан Community 23 May 2017 в 12:07
поделиться

1 ответ

Теперь это работает из коробки с SDK. Смотрите Scrolling Madness и Apple's UIPageControl sample для руководства по реализации постраничной горизонтальной прокрутки с контроллером представления для каждой страницы.

Вложенные UIScrollView, которые вы добавляете как вложенные представления к внешнему UIScrollView, должны иметь ту же высоту рамки, что и контейнер. Если вы сделаете это, то внешний UIScrollView будет передавать события вертикальной прокрутки вложенному представлению. В моем приложении есть три уровня вложенности UIScrollView и UIWebView, и я обнаружил, что Cocoa действительно разумно передает события тому, кто мне нужен, пока я устанавливаю размеры рамки так, чтобы только одно представление было действительно прокручиваемым (contentSize > frame) на каждой оси.

9
ответ дан 2 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: