В приложении photoscroller (iPhone WWDC-104 Photos App) изображения uiscrollview сдвигаются вправо при вызове с помощью presentModalviewController

Я видел видео WWDC-104, показывающее UIScrollView для фотографий. Я тоже загрузил образец кода. В моем приложении структура выглядит следующим образом:

(Корневой класс) Класс A ---> Класс B -----------> PhotoViewController (содержащий ScrollView)

Я вызываю класс PhotoViewController, используя метод presentModalViewController в классе B.

Но с каждым движением новое изображение сдвигается вправо на экране. Слева от изображения видна черная вертикальная полоса, которая увеличивается с каждым движением. Таким образом, после 6-8 изображений изображение становится полностью черным.

Никакого другого кода я не писал. Просто скопировал классы.

Почему это происходит, когда класс PhotoViewController не загружается первым? Есть ли какое-либо свойство, которое нужно установить для ScrollView? Есть ли ошибка в этом взгляде на Иерархию?

Также как начать с определенного изображения (загрузить с 10-го изображения)?

Любая помощь / предложение будет высоко оценено.

РЕДАКТИРОВАТЬ :

alt text

После первого горизонтального смахивания,

alt text

После второго смахивания по горизонтали,

alt text


person Roger_iPhone    schedule 04.10.2010    source источник
comment
Я недавно работал над этим кодом, поэтому могу вам ответить. Я не уверен, что понимаю вашу проблему. Вы загружаете класс PhotoViewController в свое приложение, и когда вы переходите к другому изображению, у вас появляется черная полоса? вы можете показать нам изображение ^^?   -  person Vinzius    schedule 04.10.2010
comment
Привет, я добавил изображения. Проблема в том, что когда PhotoViewController не является первым классом, первое изображение загружается правильно. После смахивания второе изображение выглядит так, как будто его координата X сдвинута. Для третьего изображения дополнительно смещается координата X. Но я ничего не менял в коде, и тот же код отлично работает, когда PhotoViewController загружен первым классом. В чем может быть проблема?   -  person Roger_iPhone    schedule 05.10.2010


Ответы (2)


Разве ваш PhotoViewController не подталкивается UINavigationController, когда вы используете его в своем приложении?

В этом проблема, NavigationController изменяет фрейм ScrollView, а смещение и расширенная ширина, созданные PhotoViewController, больше не существуют после появления представления.

Самый простой способ исправить это - установить представление PhotoViewController на обычный UIView и добавить ScrollView в качестве подпредставления этого UIView. Затем NavigationController изменит фрейм этого представления, но не коснется его.

UIView * intermediateView = [[UIView alloc] initWithFrame:pagingScrollViewFrame];
[intermediateView addSubview:pagingScrollView];
self.view = intermediateView;

Для получения дополнительной информации ознакомьтесь с этим вопросом: Приложение «Фотографии» -подобный разрыв между страницами в UIScrollView с pagingEnabled

person Gautier    schedule 14.11.2010
comment
Вместо того, чтобы нажимать на контроллер, используйте addSubview, чтобы решить проблему. Однако сейчас я не могу обнаруживать события UITouch. - person Roger_iPhone; 21.12.2010

похоже, что вы не принимаете во внимание поля между изображениями. Вы также копировали их файлы ресурсов? Если я правильно помню, их scrollview немного расширился за пределы страницы, чтобы обеспечить отступ между изображениями.

person Ben Gottlieb    schedule 04.10.2010
comment
Да ... Между изображениями есть запас, но это делается программно, и для этого есть код. Проблема в том, что одно и то же приложение работает отлично, когда мой первый класс - PhotoViewController, но когда я вызываю его с помощью какой-либо другой кнопки, возникает эта проблема. - person Roger_iPhone; 05.10.2010