Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 加快“多用途”的最佳方式;CGContextDrawRadialGradient“;在drawrect?_Performance_Calayer_Gradient_Cglayer_Radial - Fatal编程技术网

Performance 加快“多用途”的最佳方式;CGContextDrawRadialGradient“;在drawrect?

Performance 加快“多用途”的最佳方式;CGContextDrawRadialGradient“;在drawrect?,performance,calayer,gradient,cglayer,radial,Performance,Calayer,Gradient,Cglayer,Radial,我无法发布图像,但我使用“CGContextDrawRadialGradient”方法绘制了一个着色的蓝色球(直径约40像素),它是阴影,并在球周围形成一个“脉冲”白色环(环上的内部和外部梯度)。环从蓝色球的边缘开始向外扩展(半径随计时器而增长)。当白环像无线电波一样向外扩张时,它会逐渐消失 在模拟器上运行看起来很棒,但在iPhone4上运行速度非常慢。铃声应在大约一秒钟内脉冲(如在模拟器中),但在手机上需要15-20秒。我已经读了一些关于CALayer、CGLayer和一些渐变动画的片段,但不

我无法发布图像,但我使用“CGContextDrawRadialGradient”方法绘制了一个着色的蓝色球(直径约40像素),它是阴影,并在球周围形成一个“脉冲”白色环(环上的内部和外部梯度)。环从蓝色球的边缘开始向外扩展(半径随计时器而增长)。当白环像无线电波一样向外扩张时,它会逐渐消失

在模拟器上运行看起来很棒,但在iPhone4上运行速度非常慢。铃声应在大约一秒钟内脉冲(如在模拟器中),但在手机上需要15-20秒。我已经读了一些关于CALayer、CGLayer和一些渐变动画的片段,但不清楚我应该用什么来获得最佳性能

我该如何加快速度。我应该把球放在一层,把扩张环放在另一层吗?如果是,我如何知道在drawrect上更新哪一层


感谢您的指导。谢谢。

提高这类速度的唯一方法是预渲染。确定需要多少图像帧才能使其看起来好看,然后将每个帧绘制到使用CGBitmapContextCreate创建的上下文中,并使用CGBitmapContextCreateImage捕获图像。设置图像动画的最简单方法可能是设置UIImageView的animationImages属性(尽管还有其他选项,如CALayer动画)

最新的苹果文档最后提到了iOS支持哪些像素格式,所以在创建位图上下文时请确保这些像素格式