3

我正在开发一个 iPhone 应用程序,该应用程序将显示大型可滚动和可缩放表面,其中包含图片网格和文本标签。我需要能够单独更改图片的位置并控制标签的不透明度级别。我试图通过使用UIScrollViewCore Animation 来实现这些目标。

的子视图UIScrollView包含两个主要子层:一个用于显示图片,一个用于标签。图片CALayers的内容属性设置为CGImage,并将它们作为子图层添加到图片图层。标签是CATextLayers并且它们是第二层的子层。标签层的透明度根据滚动视图的缩放比例而变化。

这就是问题所在:当标签完全不透明或完全透明时,一切正常,但当它们是半透明时,滚动开始变得生涩,FPS 降至 35 左右。显然,这些图层的混合会减慢一切,但我不能找到解决方法。我将不胜感激有关如何在这种情况下提高性能的任何想法。也许有比使用更好的方法来绘制文本标签 CATextLayer

4

2 回答 2

0

您是否可以将 UIScrollView 的两个“主要层”合并为一个?另外,您是否可以将图层直接添加到 UIScrollView 的图层而不是添加其他图层?

我发现通过减少仅出于包含其他层的目的而存在的层数,我获得了巨大的性能提升。

于 2013-08-03T14:19:08.090 回答
-1

一种解决方案是为图像层和文本层的大多数背景层添加阴影。

您可以调整许多阴影属性,即,shadowPath和-设置它们中的每一个,不要错过任何一个。也设置。shadowColorshadowOffsetshadowRadiusyourlayer.masksToBounds = NO

不要忘记添加yourlayer.shouldRasterize = YES,因为这会产生更好的性能影响。

于 2013-08-03T06:01:51.293 回答