2012-06-26 2 views
1

У меня есть приложение, которое использует встроенную флип-анимацию для переключения между различными видами. Все работает, за исключением случаев, когда я возвращаюсь к представлению, которое было просмотром прокрутки, и оно не было на первой странице. Значение:Flip анимация между двумя видами на iOS

  • мой взгляд прокрутки имеет три страницы
  • Пользователь пойло на третьей странице
  • пользователь нажимает кнопку на третьей странице, чтобы перейти к следующему представлению
  • , когда пользователь пытается вернуться к прокрутка, просмотр флип-анимации показывает первую страницу во время флип, а затем привязывается к правильной странице после завершения флип.

Я использую [scrollView setContentOffset] для установки правильной страницы перед флип-анимацией, но этого, похоже, недостаточно. Есть ли способ сделать это?

+0

вы могли бы предоставить некоторый код ... есть много способов, которыми вы можете заниматься, что вы описываете ... – sergio

ответ

0

Использование

[scrollView setContentOffset:theOffset animated:NO]; 

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

Звоните по телефону viewDidLoad или viewWillAppear: должно работать.

+0

Спасибо. Проблема действительно начиналась с анимации до того, как было установлено представление - я просто переместил код запуска анимации, и все встало на свои места. –

0

Одним из возможных вариантов можно проверить, используя setContentOffset:

[scrollView setContentOffset:CGPointMake(pageWidth * pageNumber, 0)]; 

для перемещения Scrollview происхождения, так что отображение номера страницы pageNumber (бушует от 0 до N). Или вы могли бы попробовать с:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 

, но так как вы не указали, как вы делаете покадровую анимацию, я не знаю, какой из них будет работать для вас.

+0

Спасибо. Позвольте мне уточнить: я использую setContentOffset для перехода к правильной странице, НО, что не делает трюк. Прямо сейчас, взгляды переворачиваются, и я вижу первую страницу scrollView во время флип - как только флип заканчивается, scrollView привязывается к правильной странице. Я пытаюсь увидеть, есть ли способ увидеть правильную страницу во время флип. Я обновлю свое оригинальное сообщение, чтобы отразить эту проблему (еще раз спасибо). –

+0

где вы называете 'setContentOffset'? возможно, вам нужно вызвать его в методе 'viewWillAppear' контроллера, который управляет просмотром прокрутки ... – sergio

+0

Изначально в viewDidLoad. Затем я сделал это в viewDidAppear, и я также попытался сделать это в обоих случаях. Кажется, что он должен работать: viewDidLoad и viewDidAppear вызываются в порядке до начала флип и смещение страницы задано правильно. Но сама флип по-прежнему показывает первую страницу. Затем в конце флип-просмотраDidAppear снова вызывается, который снова устанавливает номер страницы, и в этот момент представление привязывается к правильной странице. –

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