peterchen149 2016-03-18 08:10 采纳率: 0%
浏览 800

使用CAKeyframeAnimation导致导航栏的pop动画卡顿

我的一个提示框消失的时候,使用自定义的动画,用了CAKeyframeAnimation,此提示框消失的同时,导航栏执行pop viewcontroller操作,这时候,就出现了pop特效有卡顿的现象,如果我用UIView 的animateWithDuration 方法执行那个自定义的动画或者用uialertview代替我自己的提示框,pop特效就很流畅,这是什么原因呢?

代码如下:

 -(void)hideOnPopAnimation{
    dispatch_async(dispatch_get_main_queue(), ^{
        CAKeyframeAnimation *hideAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];
        hideAnimation.duration = kDefaultAnimationDuration;
        hideAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.1, 1.1, 1.0)],
                                 [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5,0.5 , 1.0)],
                                 [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0, 0.0, 0.0)]
                                 ];
        hideAnimation.keyTimes = @[@0.2,@0.5,@1];
        hideAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],
                                          [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],
                                          [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
        hideAnimation.delegate = self;
    hideAnimation.removedOnCompletion = NO;
    hideAnimation.fillMode = kCAFillModeForwards;
        [self.layer addAnimation:hideAnimation forKey:nil];
    });
}
-(void)hideOnPopAnimation{
    [UIView animateWithDuration:kDefaultAnimationDuration animations:^{
        self.transform  = CGAffineTransformMakeScale(0.01, 0.01);
    } completion:^(BOOL finished) {
        [self destroy];
    }];
}
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 NX MCD仿真与博途通讯不了啥情况
    • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
    • ¥15 gradio的web端页面格式不对的问题
    • ¥15 求大家看看Nonce如何配置
    • ¥15 Matlab怎么求解含参的二重积分?
    • ¥15 苹果手机突然连不上wifi了?
    • ¥15 cgictest.cgi文件无法访问
    • ¥20 删除和修改功能无法调用
    • ¥15 kafka topic 所有分副本数修改
    • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))