В приложении фотокроллера (приложение 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
Похоже, вы не принимаете во внимание разницу между изображениями. Вы также скопировали их файлы ресурсов? Если я правильно помню, их прокрутка немного растянулась "со страницы", чтобы создать поле между изображениями.