更改pushViewController和popViewController的动画效果

1.自己的方法

- (void)pushVCWithFadeinTransition:(UIViewController *)VC

{

    CATransition *transition = [CATransitionanimation];

    transition.duration =kFadeinFadeoutAnimatorDuration;

    transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];

    transition.type =kCATransitionFade;

    transition.delegate =nil;

    [self.view.layeraddAnimation:transition forKey:nil];

    

/*

    //也可以用CAKeyFrameAnimation定义自己的动画实现,自由度更大

    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];

     //缩放倍数

     NSArray* arrScales = [NSArray arrayWithObjects:

     [NSValue valueWithCATransform3D:CATransform3DIdentity],

     [NSValue valueWithCATransform3D:CATransform3DMakeScale(kAppLaunchScreenScale, kAppLaunchScreenScale, 1.0)], nil];

     

     [animation setValues:arrScales];

     [animation setKeyTimes:@[@(0.0),@(1.0)]];

     [animation setDuration:kAppLaunchScreenTimeInterval];

     [animation setAutoreverses:NO];

     animation.removedOnCompletion = NO;

     animation.fillMode = kCAFillModeForwards;

     animation.delegate = self;

     animation.beginTime = 0.0;

     */


    [selfpushViewController:VC animated:NO];

}


- (UIViewController*)popVCWithFadeoutTransition

{

    return [selfpopVCWithFadeoutTransition:kFadeinFadeoutAnimatorDuration];

}


- (UIViewController*)popVCWithFadeoutTransition:(float)timeInterval

{

    CATransition *transition = [CATransitionanimation];

    transition.duration =timeInterval;

    transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];

    transition.type =kCATransitionFade;

    transition.delegate =nil;

    [self.view.layeraddAnimation:transition forKey:nil];

    

    return [selfpopViewControllerAnimated:NO];

}


2.网上的方法

#import "UINavigationController+ja.h"

// 扩展NavigationController中的方法(catagory)

@implementation UINavigationController (ja)

- (void)pushAnimationDidStop {
}

- (void)pushViewController: (UIViewController*)controller
    animatedWithTransition: (UIViewAnimationTransition)transition {
[self pushViewController:controller animated:NO];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:TT_FLIP_TRANSITION_DURATION];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(pushAnimationDidStop)];
[UIView setAnimationTransition:transition forView:self.view cache:YES];
[UIView commitAnimations];
}

- (UIViewController*)popViewControllerAnimatedWithTransition:(UIViewAnimationTransition)transition {
UIViewController* poppedController = [self popViewControllerAnimated:NO];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:TT_FLIP_TRANSITION_DURATION];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(pushAnimationDidStop)];
[UIView setAnimationTransition:transition forView:self.view cache:NO];
[UIView commitAnimations];

return poppedController;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值