Я новичок в разработке для iPhone, и я пытаюсь сделать анимацию пролистывания между UIView и другим UIView, содержащим обычный UIView и UIScrollView, представление прокрутки в свою очередь имеет несколько UIViews в качестве подпредставлений.
Перед началом анимации представление прокрутки должно быть смещено к определенной точке, чтобы показать конкретное подпредставление (пользователь переходит к определенной «главе» в представлении прокрутки).
Это хорошая анимация, но проблема в том, что она «иногда» (возможно, каждый третий раз) запускает анимацию с одним из подпредставлений вида прокрутки вместо запуска анимации с исходным UIView («overlayView» в код ниже). Я подозреваю, что это связано с тем, что я установил смещение вида прокрутки перед анимацией.
Вот как я сейчас это делаю:
// get the MPMoviePlayer window that has the views to animate between as subviews
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
// tell the controller of the scroll view to set the scroll view offset
[instructionControlsController setInstructionImageWithNumber:[self chapterAtTime:currentTime]];
// Animate transition to instruction view
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView: moviePlayerWindow cache:NO];
// the views to animate between
[moviePlayerWindow sendSubviewToBack: overlayView];
[moviePlayerWindow bringSubviewToFront: instructionControlsController.view];
[UIView commitAnimations];
Метод setInstructionImageWithNumber в контроллере выглядит следующим образом:
- (void) setInstructionImageWithNumber:(int)number
{
if (number < kNumberOfPages)
[scrollView setContentOffset: CGPointMake((number * kImageWidth), 0) animated:NO];
}
Любые идеи о том, что я могу делать неправильно и почему я получаю такое поведение, когда анимация иногда выглядит хорошо, а иногда нет?