CATransition用于转场动画(旧版iOS 7样式)

3
我有一个自定义的segue,试图复制iOS 7之前风格的push/pop segues:
视图控制器并排动画,没有变暗。(这真的很难!)
以下代码有效,但存在以下问题:
退出页面在退出时变暗
进入页面进入时变暗(随着移动到位置逐渐恢复正常)
这些图片说明了问题: enter image description here 然后... enter image description here 有没有办法停止这种变暗效果?我会非常感激一些帮助。
-(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];
}

我已经采用了动画化viewController视图来创建我的segue(不太整洁),而不是使用CATransition。然而,我会保持这个问题的开放,以防它能帮助其他人。 - Custom Bonbons
你解决了吗? - Paras Joshi
很不幸,我没有找到一个超级简单的解决方案。我不得不采用动画化viewController视图的方法。(如果苹果能够创建一个选项来去除这种不必要的阴影效果就好了。) - Custom Bonbons
1个回答

1
这两个函数对我来说运行良好,尽管代码与你的相似度很高,希望能有所帮助。
+(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进入/退出时使其变暗。 这非常烦人。 - Custom Bonbons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接