我想在推送视图控制器时显示自定义动画:我希望实现像"扩展"动画这样的东西,这意味着新视图从给定的矩形扩展,让动画期间[100,100 220,380]全屏显示.
任何建议从哪里开始,分别是任何文档,教程,链接?:)
好的.我可以使用以下代码制作展开动画:
if ([coming.view superview] == nil)
[self.view addSubview:coming.view];
coming.view.frame = CGRectMake(160,160,0,0);
[UIView beginAnimations:@"frame" context:nil];
[UIView setAnimationDuration:4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[coming viewWillAppear:YES];
[going viewWillAppear:YES];
coming.view.frame = CGRectMake(0, 0, 320, 480);
[going viewDidDisappear:YES];
[coming viewDidAppear:YES];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
我的视图已正确显示,但遗憾的是导航栏未更新.有没有办法手动完成?
在示例代码中,一个函数被称为0.03秒,用于更新视图的转换.不幸的是,当推动一个时UIViewController,我无法调整视图的框架...我是吗?
iphone animation uiviewcontroller uikit uinavigationcontroller
我有我的故事板一个UINavigationController设置和我做了一个自定义赛格瑞类,你可以看到下面这我的看法之间很好地淡化(而不是一个沼泽标准推).
然而,当我点击我的导航控制器给我的那个后退按钮时,我得到一个我不想要的推动画,我想要使用那个褪色!我也不想在我的故事板中有两个段落,因为它只是变得混乱.
任何帮助非常感谢!
自定义淡入淡出:
-(void)perform
{
__block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
__block UIViewController *destinationController = (UIViewController*)[self destinationViewController];
[UIView transitionWithView:sourceViewController.navigationController.view duration:1.0 options:UIViewAnimationOptionTransitionCrossDissolve
animations:^
{
[sourceViewController.navigationController pushViewController:destinationController animated:NO];
}
completion:^(BOOL finished)
{
NSLog(@"Transition Completed");
}];
}
Run Code Online (Sandbox Code Playgroud)
编辑:
也许我应该简化.如何在UINavigationController中的两个视图控制器之间进行交叉消除淡入淡出,该视图控制器推送和弹出视图而不是标准的左右侧面动画?
谢谢.