iOS / Obj-C UIScrollView и PageControl не работают

Я пытаюсь реализовать UIScrollView с UIPageControl, следуя руководству на этом веб-сайте: http://www.iosdevnotes.com/2011/03/uiscrollview-paging/ В отличие от руководства, я реализую это в проекте раскадровки и использую XCode4.5.2. В дополнение к коду в руководстве я добавил в начале @interface, а внутри метода viewDidLoad в реализации я добавил scrollView.delegate = self.

Благодаря тому, что в мое приложение добавлен только код и IB-объекты, описанные в руководстве, оно не позволяет мне вообще прокручивать, когда я тестирую его на своем iPhone. Единственное, что я могу прокрутить, это провести пальцем по UIPageControl, что заставит «белую точку» в PageControl переместиться на одно место в направлении, в котором я проводил, и без видимых изменений в ScrollView. В руководстве мы добавляем разные цвета к фону представлений в scrollView - ни один из этих цветов не отображается вообще.

Я пробовал выполнять отладку, добавляя NSLogs в свой код, чтобы узнать, какие методы доступны в приложении. Добавление NSLog (@ "Просмотр загружен"); сразу после [super viewDidLoad]; в методе viewDidLoad поверх основного контроллера представления ничего не выводит на терминал. Означает ли это, что мое приложение не загружается должным образом?

Заранее спасибо!


person Henrik Hillestad Løvold    schedule 16.01.2013    source источник


Ответы (2)


У вас есть несколько страниц, добавленных в scrollView? Прокрутка по умолчанию отключена, если у вас есть только одна страница содержимого. Убедитесь, что вызывается метод loadScrollView, а также добавьте это:

scrollView.pagingEnabled=YES;
person Tommy Devoy    schedule 16.01.2013
comment
И что вы имеете в виду, что viewDidLoad ничего не выводит? ViewDidLoad вызывается только в самый первый раз, когда ваше приложение загружается, если это ваш главный экран (если вы не вернетесь к этому экрану вместо того, чтобы закрыть его). ViewWillAppear и viewDidAppear вызываются каждый раз. - person Tommy Devoy; 16.01.2013
comment
Я уже поставил галочку «Включить пейджинг в IB». Я имею в виду, что viewDidLoad ничего не выводит: я поместил NSLog @View в этот метод, чтобы увидеть, работает ли он, и никогда не запускается - даже когда я запускаю приложение. - person Henrik Hillestad Løvold; 16.01.2013
comment
Вы уверены, что установили правильный класс в Интерфейсном Разработчике? Похоже, IB не связан с вашим кодом. - person Tommy Devoy; 16.01.2013

Если вам интересно, я создал этот класс для разбиения по страницам с помощью scrollview

https://github.com/andrealufino/ALScrollViewPaging

person Andrea Mario Lufino    schedule 16.02.2013