我使用以下代码作为扩展UINavigationController
来推送具有自定义动画的视图控制器:
@implementation UINavigationController (PushAnimation)
- (void)pushViewController:(UIViewController*)controller withTransition:(UIViewAnimationTransition)transition
{
[UIView beginAnimations:nil context:NULL];
[self pushViewController:controller animated:NO];
[UIView setAnimationDuration:1.0];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition:transition forView:self.view cache:YES];
[UIView commitAnimations];
}
@end
启用缓存后,我在推送UITableViewController
. 自定义动画完成后出现推送视图的标题。使用过渡样式UIViewAnimationTransitionNone
,很明显标题本身是动画的。它从屏幕的左上角移动到UINavigationBar
.
在禁用缓存的情况下,由于其速度,此动画不可见,但帧速率显着下降。
如何防止标题被动画化?