UINavigationController自定义,push和pop动画

来源:互联网 发布:2017即将上映的网络剧 编辑:程序博客网 时间:2024/05/14 15:40

我自己写的一个自定义UINavigationController,可以很方便地定制UINavigationController的navigationBar背景样式,比较炫的push和pop效果,不多说,上代码。

重写-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated方法,以下是动画的关键代码

     UIView * toView = [viewControllerview];

        CABasicAnimation *Animation  = [CABasicAnimationanimationWithKeyPath:@"transform"];

       CATransform3D rotationAndPerspectiveTransform =CATransform3DIdentity;

        rotationAndPerspectiveTransform.m34 =1.0 / -1000;

        rotationAndPerspectiveTransform =CATransform3DMakeTranslation(self.view.frame.size.width,0,0);

        [Animation setFromValue:[NSValuevalueWithCATransform3D:CATransform3DMakeTranslation(self.view.bounds.size.width,0,0)]];

        [Animation setToValue:[NSValuevalueWithCATransform3D:CATransform3DMakeTranslation(0,0,0)]];

        [AnimationsetDuration:0.3];

        Animation.delegate =self;

        //no表示动画会保持最后的状态,yes会返回到最初的状态

        Animation.removedOnCompletion =NO;

        Animation.fillMode =kCAFillModeBoth;

        [toView.layeraddAnimation:AnimationforKey:@"fromRight"];

        CABasicAnimation *Animation1  = [CABasicAnimationanimationWithKeyPath:@"transform"];

       CATransform3D rotationAndPerspectiveTransform1 =CATransform3DIdentity;

        rotationAndPerspectiveTransform1.m34 =1.0 / -1000;

        rotationAndPerspectiveTransform1 =CATransform3DMakeScale(1.0,1.0,1.0);

        [Animation1 setToValue:[NSValuevalueWithCATransform3D:CATransform3DMakeScale(0.95,0.95,0.95)]];

        [Animation1setDuration:0.3];

        Animation1.delegate =self;

        Animation1.removedOnCompletion =NO;

        Animation1.fillMode =kCAFillModeBoth;

        [animationLayeraddAnimation:Animation1forKey:@"scale"];



相关项目代码例子:http://download.csdn.net/detail/a865499908/7041469

0 0
原创粉丝点击