2013-07-08 6 views
0

У меня есть UIScrollview с содержимым в два раза размером экрана iphone (портрет). В нем два изображения. пользователь может переходить от другого к другому. Теперь, нажав на inageviews, я представляю другой ViewController и показываю это изображение более подробно.UIScrollView, модальное окно, перемещение содержимого

Проблема заключается в том, что, когда пользователь отклоняет этот модальный VC и возвращается к исходному VC с двумя изображениями, оба изображения смещаются в пределах содержимого прокрутки на 160 точек по оси x, поэтому первое изображение имеет начало координат (0,0), а второй - на (320, 0), после увольнения модальных VC они переключаются на (-160, 0) и (160, 0) соответственно.

Я исследовал это и обнаружил, что я должен обращаться в

- (void)viewWillAppear:(BOOL)animated { 
     [super viewWillAppear:animated]; 
     //here I try to manipulagte and foce another origin point, but it just doesn't 
    update 
    } 

Другие нашли решение, как этот

[self.scrollView setContentOffset:CGPointZero]; 

Но это заставляет свиток, чтобы вернуться к первому изображению, даже если пользователь нажал на второе изображение!

Любые идеи?

+0

Попробуйте обновить размер содержимого прокрутки в ViewWillLayoutSubviews ... Посмотрите, работает ли оно или нет. – Sabby

ответ

0

Я не совсем уверен, почему ваш scrollView будет автоматически смещаться из положения, когда вы отклоняете модальный VC, но я бы сказал, что ваш лучший выбор - это изменение размера контента (как указано в вашем ответе) вручную, , Все, что вам нужно настроить, - это при нажатии на одно из изображений сохранить ссылку на это представление (предположительно ImageView) в свойстве в родительском VC. Когда вы звоните setContentOffset, сделайте это как так (скажем, вы бы сохранили представление в собственность под названием selectedView)

self.scrollView.contentOffset = CGPointMake(self.selectedView.frame.origin.x, self.selectedView.frame.origin.y) 

Это должно настроить его в нужное положение (вы можете добавить или вычесть немного к значениям в смешайте его немного, если хотите)

+0

все еще не работает, изображения перемещаются на 160 пикселей, я не знаю, что еще события после этого? – funkycoldmedia

Смежные вопросы