После прочтения опубликованных вами яблочных документов также появляется сообщение:
Методы блочной анимации (такие как
animateWithDuration: анимации :) значительно упрощают создание
анимации. Одним вызовом метода вы указываете анимацию, которая будет
исполнены и варианты анимации. Тем не менее, на основе блоков
анимации доступны только в iOS 4 и более поздних версиях. Если ваше приложение
работает на более ранних версиях iOS, вы должны использовать
Методы класса beginAnimations: context: и commitAnimations для отметки
начало и конец вашей анимации.
Я понимаю, что они рекомендуют его , потому что значительно упрощает создание анимации. Он также отмечает, что он не будет работать с любыми устройствами, не имеющими ios 4. Если вы знаете, как использовать CAAnimation, я бы продолжал его использовать. Я до сих пор использую это без каких-либо проблем:
- (void)switchTwoViews:(UIView *)view1 otherView:(UIView *)view2 direction:(int)directionRL{
view2.frame = CGRectMake(0, 0, 400, 211);
visibleView = view2;
// remove the current view and replace with view1
[view1 removeFromSuperview];
[currentOptionsView addSubview:view2];
// set up an animation for the transition between the views
CATransition *animation = [CATransition animation];
[animation setDuration:0.3];
[animation setType:kCATransitionPush];
if (directionRL == 0) {
[animation setSubtype:kCATransitionFromRight];
} else {
[animation setSubtype:kCATransitionFromLeft];
}
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[currentOptionsView layer] addAnimation:animation forKey:@"SwitchToView"];
}