演示如何给导航控制加动画特效

需要引入的库:#import <QuartzCore/QuartzCore.h>

有2个导航控制器第一个是RootViewControler,第二个是SecondViewController

在第一个页面添加一个按钮,按钮的点击事件就是使用导航控制器push到第二个页面

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title = @"演示给导航控制器加动画效果";
    self.view.backgroundColor = [UIColor grayColor];
	UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn1.frame = CGRectMake(10, 20, 300, 30);
    [btn1 setTitle:@"跳转" forState:UIControlStateNormal];
    [btn1 addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn1];
}
- (void) btnClick
{
    // 跳转的页面
    SecondViewController *svc = [[SecondViewController alloc] init];
    // 声明一个CAAnimation
    CATransition *transition = [CATransition animation];
    // 设置代理(通过代理可以进行动画开始和结束的回调函数)
    transition.delegate = self;
    // 周期
    transition.duration = 0.8;
    // 类型 立方体
    transition.type = @"cube";
    // 设子副类型
    transition.subtype = kCATransitionFromLeft;
    // 设置曲线为进出加速
    transition.timingFunction = UIViewAnimationCurveEaseInOut;
    // 把动画加到导航控制器上
    [self.navigationController.view.layer addAnimation:transition forKey:@"animation"];
    // 跳转到第二个页面
    [self.navigationController pushViewController:svc animated:NO];    
}
// 动画开始的回调函数
- (void)animationDidStart:(CAAnimation *)anim
{

}
// 动画结束的回调函数
- (void) animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值