我正在研究iPhone应用程序,它将显示包含图片和文本标签网格的大型可滚动和可缩放表面。我需要能够单独更改照片的位置并控制标签的不透明度。我试图通过使用UIScrollView
和Core Animation来实现这些目标。使用透明CALayers平滑滚动UIScrollView
UIScrollView
的子视图包含两个主要子图层:一个用于显示图片,另一个用于标签。图片是CALayers
,其内容属性设置为CGImage
,它们作为子图层添加到图片图层。标签是CATextLayers
,它们是第二层的子层。标签图层的透明度根据滚动视图的缩放比例而变化。
这里的问题是:当标签是完全不透明或完全透明一切正常,但是当他们是半透明的滚动开始是干和FPS下降到约35。显然,这些混合层的减缓都记录下来,但我找不到解决的办法。 我将不胜感激关于如何改善这种情况下的性能的任何想法。也许有更好的方法来绘制文本标签比使用CATextLayer
?
我将标签保留在单独的图层上,以便我可以一次调整所有图层的透明度。但我会尝试添加图片直接滚动视图的子视图的层,看看是否有帮助,感谢您的建议。 –
啊,我明白了。在一天结束的时候,它会涉及到尝试不同的事情,因为性能问题总是情境化的。但是,我猜想Objective C快速枚举+单独设置alpha的速度比拥有容器层并更改其不透明度(您将少一层混合)要快。无论如何,让我知道你是否还有其他问题。 –