具有自定义“从中心缩放”ModalTransitionStyle的PresentViewController

时间:2013-04-04 11:21:19

标签: cocoa-touch uiviewcontroller uiviewanimation uiviewanimationtransition

我正在尝试实现自定义视图呈现过渡样式。这是我的代码:

[myViewController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentViewController:myViewController animated:YES completion:^(void){}];

我希望在呈现视图时实现“从中心缩放”效果。我用JQuery UI做了一个期望效果的演示:http://jsfiddle.net/c7ztP/

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:8)

我会做的是以下

从启动视图控制器我会这样做

// OriginalViewController.h
newViewcontroller.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.0f, 0.0f);
[self presentViewController:newViewController animated:NO completion:nil];

在接收视图控制器上我会这样做

-(void)viewDidLoad {
   [UIView animateWithDuration:0.3f animations:^{
    self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0f, 1,0f);
   }];
}

为此,您需要QuartzCore.framework。另外为了让它更甜,我会为完整的alpha动画添加零alpha,因为它看起来更好。

答案 1 :(得分:2)

您应该使用此动画效果编写自己的Controller 请查看此控件:KGModalUAModalPanel 检查动画示例的源代码。重写此代码以支持全屏视图并不困难。