Iphone segue动画的CATTransition(iOS 7之前的风格)
我有一个自定义segue,尝试复制iOS 7之前的推送/弹出segue: 视图控制器并排设置动画,没有变暗。(真的有那么难吗!) 以下代码有效,但以下代码除外:Iphone segue动画的CATTransition(iOS 7之前的风格),iphone,ios,cocoa-touch,segue,Iphone,Ios,Cocoa Touch,Segue,我有一个自定义segue,尝试复制iOS 7之前的推送/弹出segue: 视图控制器并排设置动画,没有变暗。(真的有那么难吗!) 以下代码有效,但以下代码除外: 退出页面在退出时变暗 进入时进入页面变暗(移动到位后逐渐恢复正常) 这些图片说明了问题: 然后 有没有办法阻止这种变暗效果?我非常感谢您的帮助 -(void)perform { UIViewController *source = self.sourceViewController; UIWindow *window
- 退出页面在退出时变暗
- 进入时进入页面变暗(移动到位后逐渐恢复正常)
-(void)perform
{
UIViewController *source = self.sourceViewController;
UIWindow *window = source.view.window;
CATransition *transition = [CATransition animation];
[transition setDuration:2.0];
[transition setDelegate:self];
[transition setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
[transition setType:@"push"];
[transition setSubtype:kCATransitionFromRight];
[window.layer addAnimation:transition forKey:kCATransition];
[window setRootViewController:self.destinationViewController];
}
这两个函数对我来说工作得很好,尽管代码与您的非常相似,但我希望它能有所帮助
+(void) modalRight:(UIViewController*)vc destvc:(UIViewController*)viewCtrl{
CATransition *transition = [CATransition animation];
transition.duration = 0.3;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[vc.view.window.layer addAnimation:transition forKey:nil];
[vc presentModalViewController:viewCtrl animated:NO];
}
+(void) modalLeft:(UIViewController*)vc{
CATransition *transition = [CATransition animation];
transition.duration = 0.3;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[vc.view.window.layer addAnimation:transition forKey:nil];
[vc dismissModalViewControllerAnimated:NO];
}
这与我正在使用的非常相似,但不幸的是,在iOS 7中,它在其入口/出口处使ViewController变暗。这很烦人。我已经求助于设置viewController视图的动画来创建我的segue(没有那么整洁),而不是使用CATTransition。然而,我将保留这个问题,以防它对其他人有帮助。你得到解决方案了吗?不幸的是,我没有找到一个超级简单的解决方案。我已经求助于设置viewController视图的动画。(如果苹果能创建一个选项来移除这种不必要的阴影,那就太好了。)