Что не так с этой анимацией на iOS 4.2? - PullRequest
0 голосов
/ 12 ноября 2010

Я создал анимацию в своем проекте, которая переключается между 2 UIWebView.Когда я разрабатывал на iOS 3.2 все было хорошо с анимацией.Но когда я перешел на iOS 4.2, вдруг все пошло не так: </p> <pre><code> //LeftView Animation [UIView beginAnimations:@"leftPortrait" context:nil]; [UIView setAnimationDelegate:self]; [UIView setAnimationDuration:1.0f]; [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:leftView cache:YES]; [leftWebView setFrame:CGRectMake(0, 0, 384, 916)]; [UIView commitAnimations]; //RightView Animation [UIView beginAnimations:@"rightPortrait" context:nil]; [UIView setAnimationDelegate:self]; [UIView setAnimationDuration:1.0f]; [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:rightView cache:YES]; [rightWebView setFrame:CGRectMake(0, 0, 384, 916)]; [UIView commitAnimations];

Спасибо!

1 Ответ

1 голос
/ 19 декабря 2010

Попробуйте использовать блочную анимацию.

Они более чистые, гладкие, а также являются действующим способом Apple.Переход от [UIView beginAnimations: context:] к блочной анимации также недавно исправил проблему с анимацией в моем коде.

В вашем случае простая версия блочной анимации была бы [UIView animateWithDuration:1.0f animations:^{[leftWebView setFrame:CGRectMake(0, 0, 384, 916)];}.Возможно, вы захотите использовать -[UIView animateWithDuration:delay:options:animations:animations:completion:] для установки других параметров и кода, который должен быть выполнен после завершения анимации.

...