您的位置:首页 > 产品设计 > UI/UE

UINavigationController自定义,push和pop动画

2014-03-14 17:23 274 查看
我自己写的一个自定义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:Animation
forKey:@"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:Animation1
forKey:@"scale"];

相关项目代码例子:http://download.csdn.net/detail/a865499908/7041469
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  animation 动画 ios