我添加了几个CALayers作为UIView图层的子图层。每层的内容是从服务器下载的不同图像。每个图层都从屏幕外移动到随机生成的位置。图像数据是异步下载的。每张图像大约为300x300或更小。CALayer优化?
随机放置的结果是,这些层重叠,有些被上面的层遮挡。这很好。
我除去层,因为它们使用建议在the answer to this question的计算以确定覆盖变得完全遮蔽从视野发生在一个单独的线程。
我有一个UIPanGestureRecognizer,允许用户在屏幕上拖动图层。
当添加的图层数量接近25-30并逐渐变差时,我遇到了性能问题。动画变得不稳定并且通常完全不存在(新添加的层仅出现在其最终位置)。而平移手势要么被忽略,要么导致选定图层重新定位不连续。
我想我正在杀死所有图层重叠并且上面有另一个图层动画的GPU?
有关如何提高性能的任何建议?
处理大量图层的最佳做法?
让图层在单独的view.layer中开始动画比先前添加的图层更好吗?
谢谢!
谢谢比尔。我会给它一个镜头。当我提供layer.contents(仅在绘制图层时才使用)时,我的印象是不透明的被忽略了?阿尔法位将更加棘手 - 我在图像边缘周围使用2px宽的透明边框来平滑旋转边缘。关闭仪器! – TomH 2011-02-01 14:16:26