2 peterchen149 peterchen149 于 2016.03.18 16:10 提问

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

我的一个提示框消失的时候,使用自定义的动画,用了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];
    }];
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
针对某些场景下关于使用iOS UINavigation pop 时界面卡顿问题的解决?
1.针对某些场景下关于使用iOS UINavigation pop 时界面卡顿问题的解决?有时会遇到UINavigationController popViewController的时候,会发现pop没有反应,等了大概6~8秒才有pop的效果,1.分析原因自己是在一个回调里调用了UINavigationController系统的pop方法,出现上述卡顿。正常直接调用没有问题。难道是回调的问题,那什...
navigation的pushViewController卡顿问题
最近才使用Xcode5 iOS7进行开发,遇到了个小问题,在使用navigation的pushViewController进行push的时候,两个页面间的动画会出现卡顿一下再推出的效果,最后找出,是因为iOS7 viewController背景颜色的问题,其实不是卡顿,是由于透明色颜色重叠后视觉上的问题,只要在新push里设置下背景颜色就好了     self.view.backgr
CAKeyframeAnimation 循环间隙卡顿
使用CAKeyframeAnimation可以实现Layer按照特定path上移动的效果,比如说一个圆、一个矩形等。 如果需要path上循环移动,怎么做呢?   当然是设置repeatCount,想循环多少次就设置多少次,如果是无限循环呢,就设置为NSNotFound ok,看效果是循环起来了。 But,有点问题,为什么每次循环完一圈后,启动下一圈时会卡顿一下呢?   原来是需要设置这个
首次进入Activity、动画卡顿问题的解决方案
初步思路,等待Activity的转场动画完成后,再开始页面内的动画
android activity刚打开时内部动画卡顿问题
最近遇到这个问题,一个activity中有一个imageview的旋转动画,当activity刚打开时,前几秒这个旋转的动画没有转动的过程,过了0.几秒以后直接卡到某个未知接着转.到处搜索都是说activity出现时的过渡动画的问题,感觉人类语言不足以精简的表达这种事情ORZ.Google后找到了这个文章 和 这个文章,大致就是说: It’s important to note that the
关于主线程阻塞导致界面卡顿问题总结
遇到的问题 一个界面里面执行了刷新和一个动画效果,当动画效果执行完之后会对界面进行重新绘制,这个时候会出现卡顿现象。 解决问题 经多次查看,问题不出在动画上,是动画执行完毕之后更新一个textView里的内容,这个textView宽高是wrapContent的,所以,当更新textView内容的时候会重新绘制textView的宽高,导致了主线程阻塞,出现卡顿。 解决方法:将此textView
android 动画卡顿分析工具
Android应用性能优化之分析工具[二]   Android应用性能优化之分析工具   上一次记录了解决过度绘制的过程,这一次,想先弄清个概念性的东西,就是如何判断顺不顺畅?   这东西其实最初我自己也觉得有点废话,用起来会卡就明显是不顺畅咯。   但这东西就跟我很想吐槽很多应用一样,明明那么卡还放出来一样的道理。 理论永远是理论,实践才是第一生产力。     因为我自己的
CSS3 动画卡顿性能优化解决方案
(点击上方公众号,可快速关注)来源:趁你还年轻segmentfault.com/a/1190000013045035最近在开发小程序,与vue类似,它们都有生命周期这回事。onLoad 监听页面加载onReady 监听页面初次渲染完成onShow 监听页面显示到底是什么意思?所以这又触碰到了我的知识盲区,不过项目在磕磕绊绊中完成的差不多了,但是遇到了CSS3动画渲染的性能问题,所以我也是被逼的,再
Android属性动画优化(更高效的使用属性动画)
Android属性动画优化
android 解决帧动画卡顿情况
      最近公司有一个项目需求,需要在一个特定的android设备上做一组帧动画的效果,当时感觉这个功能很容易,相信大家都知道,android的原生帧动画实现方法,但是问题就出现在这,如果使用原生的帧动画,在手机上是没有问题的,但是在公司的设备上就非常卡顿,也就是低端机,由于图片过多,效果异常卡顿,所以在这篇文章中就说一下帧动画的优化问题。      首先还是先来看一下android原生的帧动...