我自己写的一个自定义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.youkuaiyun.com/detail/a865499908/7041469