我用下面的代碼作爲擴展UINavigationController
推帶有自定義動畫視圖控制器:推自定義動畫一個UITableViewController總是動畫UINavigationItem標題
@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'代碼中。一個想法是將其子類化,並改變它的默認行爲 – adig