Я разрабатываю свое первое приложение для iPhone, и я был бы очень признателен за Вас вход парня на проблеме, которую я имею.
Я надеюсь реализовывать прокрутку и горизонтально и вертикально. Я хочу, чтобы горизонтальная прокрутка была разбита на страницы без вертикальной разбиваемой на страницы (прокрутка "обычно"). Единственный UIScrollView с набором pagingEnabled к ДА разобьет на страницы в обоих направлениях. Естественное решение состояло бы в том, чтобы вложить UIScrollView в другом, однако когда я делаю это, я не могу заставить "внутренний" UIScrollView прокручивать вообще. Кажется, что внешний "ест" все события касания, как в:
UIScrollView: подкачка страниц горизонтально, прокручивая вертикально?
Я считал что-то о "внутренней прокрутке", улучшаемой в SDK 3.0 и на самом деле когда я добавляю внутренний UITableView вместо UIScrollView работы прокрутки безупречно. Так как UITableView разделяет UIScrollView на подклассы, я предполагаю, что мое желаемое поведение должно быть достижимым путем создания моего собственного подкласса UIScrollView.
Действительно ли это - правильный подход? Если так, на что должен быть похожим этот подкласс?
Теперь это работает из коробки с SDK. Смотрите Scrolling Madness и Apple's UIPageControl sample для руководства по реализации постраничной горизонтальной прокрутки с контроллером представления для каждой страницы.
Вложенные UIScrollView, которые вы добавляете как вложенные представления к внешнему UIScrollView, должны иметь ту же высоту рамки, что и контейнер. Если вы сделаете это, то внешний UIScrollView будет передавать события вертикальной прокрутки вложенному представлению. В моем приложении есть три уровня вложенности UIScrollView и UIWebView, и я обнаружил, что Cocoa действительно разумно передает события тому, кто мне нужен, пока я устанавливаю размеры рамки так, чтобы только одно представление было действительно прокручиваемым (contentSize > frame) на каждой оси.