【发布时间】:2012-05-03 18:31:42
【问题描述】:
我使用以下代码作为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 的中心。
在禁用缓存的情况下,由于其速度,此动画不可见,但帧速率显着下降。
如何防止标题被动画化?
【问题讨论】:
-
我认为标题的动画发生在
UINavigationBar代码中。一个想法是将其子类化并更改其默认行为
标签: objective-c ios animation uinavigationcontroller uinavigationitem