Как на самом деле реализовать пейджинговый UIScrollView из примера Apple? - PullRequest
0 голосов
/ 16 сентября 2010

Я нашел пример подкачки UIScrollView в документации разработчика Apple, и это именно то, что я хочу для своего приложения. У меня есть главное представление с кнопкой «Справка», которое я хочу представить в виде, которое пользователи могут просматривать, просматривая все разделы справки. Образец находится по адресу:

https://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/ScrollViewPagingMode/ScrollViewPagingMode.html%23//apple_ref/doc/uid/TP40008179-CH3-SW1

И он работает как рекламируется, но, как и во многих примерах Apple, они делают все виды кода прямо в AppDelegate. У меня есть свой AppDelegate, но затем у меня есть NavigationController с RootView, на котором есть кнопка «Справка». Кажется, я не могу встроить пример кода в свой собственный и заставить его работать. Я почти уверен, что не могу поместить код, который у них есть в их AppDelegate, в свой собственный, но как его настроить ускользает от меня.

Может кто-нибудь указать мне пример, где они делают то, о чем я говорю?

РЕДАКТИРОВАТЬ: я смог создать новый проект и заставить его работать как Apple, переместив все AppDelegate методы в UIViewController, который предоставил шаблон, и создав новый ContentPage UIViewController для хранения содержание. Он может прокручивать от страницы к странице, поэтому я думаю, что я могу вставить этот код в другой мой проект, хорошо.

Я заменил applicationDidFinishLaunching эквивалентным viewDidLoad и избавился от AppDelegate материала, имеющего дело с window и тому подобным. Затем я изменил метод Apple initWithPageNumber:, чтобы ссылаться на мои страницы справки, а не просто создавать экземпляры их общих представлений.

- (id)initWithPageNumber:(int)page {
    NSLog(@"--initWithPageNumber:ContentPage");
    if (self = [super initWithNibName:[NSString stringWithFormat:@"HelpPage%d", page] bundle:nil]) {
        pageNumber = page;
    }
    return self;
}

Спасибо за помощь - иногда хорошо, когда кто-то говорит вам, что это можно сделать, чтобы продолжать идти!

1 Ответ

1 голос
/ 16 сентября 2010

В примере кода метод applicationDidFinishLaunching: устанавливает UIScrollViewUIPageControl, но давайте пока проигнорируем это), а затем «загружает» первые две страницы.«Загрузка» страницы состоит из загрузки контроллера представления этой страницы в память и ее кэширования.Затем он добавляет представление этого контроллера как подпредставление к смещению UIScrollView с соответствующим x на основе того, что это «номер страницы».Вы должны быть в состоянии сделать все это в вашем viewDidLoad.

Если у вас есть пустое представление, когда отображается представление вашего контроллера представления, значит, вы не добавили подпредставление правильно в ваше UIScrollView.В зависимости от того, что именно вы изменили, это может быть некоторая комбинация (а) неправильного получения смещения по оси x, (б) неправильной установки фрейма или (в) неправильного добавления его в качестве подпредставления.Если вы разместите свой собственный код, мы сможем пролить свет на эту проблему.

...