0

我有一个带有 CAShapeLayer 子层的 UIScrollView,它呈现一条简单的线条。CAShapeLayer 子层有自己的子 CAShapeLayer。这会导致滚动和缩放变慢。层次结构是这样的:

-UIScrollViewLayer -CAShapeLayer -CAShapeLayer

如果我改变这个层次结构,使它只有一层深,我就没有性能问题:

-UIScrollViewLayer -CAShapeLayer -CAShapeLayer

我究竟做错了什么?

4

1 回答 1

2

塞梅尔,

所以我的滚动视图控制器目前正在这样做:

[self.uiview.layer addSublayer:myCALayer];

myCaLayer 也在其 init 方法中执行此操作:

CAShapeLayer *overlayLayer = [[CAShapeLayer alloc] init];
[self addSublayer:overlayLayer]

由于某种原因,我发现这种层次结构很慢。如果我改为展平层次结构并在我的 uiscrollview 控制器中执行此操作:

[self.uiview.layer addSublayer:myCALayer];
CAShapeLayer *overlayLayer = [[CAShapeLayer alloc] init];
[self.uiview.layer addSublayer:overlayLayer]

然后性能要好得多。希望这更有意义。

于 2012-06-25T14:47:05.053 回答