界面切换动画(CATransition实现 )

调用

// CATransition动画实现
    [self pushWithAnimationType:@"fade"];
- (void)pushWithAnimationType:(NSString *)typeStr
{
    __weak typeof (self) weakself = self;
    [weakself.navigationController.view.layer addAnimation:[self createTransitionAnimation:typeStr] forKey:nil];
}
#pragma CATransition动画实现
/**
 动画类型
 fade 淡出效果
 moveIn 新视图移动到旧视图
 push 新视图推出旧视图
 reveal 移开旧视图
 cube 立方体翻转效果
 oglFlip 翻转效果
 suckEffect 收缩效果
 rippleEffect 水滴波纹效果
 pageCurl 向下翻页
 pageUnCurl 向上翻页
 CameraIrisHollowOpen, 开镜头
 CameraIrisHollowClose, 关镜头
 CurlDown,              下翻页
 CurlUp,                 上翻页
 FlipFromLeft,           左翻转
 FlipFromRight,          右翻转
 */
-(CATransition *)createTransitionAnimation:(NSString*)typeStr
{
    //切换之前添加动画效果
    //后面知识: Core Animation 核心动画
    //不要写成: CATransaction
    //创建CATransition动画对象
    CATransition *animation = [CATransition animation];
    //设置动画的类型:
    animation.type = typeStr;
    //设置动画的方向
    animation.subtype = kCATransitionFromBottom;
    //设置动画的持续时间
    animation.duration = 1.5;
    //设置动画速率(可变的)
    animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    //动画添加到切换的过程中
    return animation;
}
原文地址:https://www.cnblogs.com/dujiahong/p/9355261.html