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

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

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

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

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

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

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

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

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

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

альтернативный текст

После первого горизонтального удара,

альтернативный текст

После второго горизонтального удара

альтернативный текст

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

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

Другие вопросы по тегам