我有一个带有 CAShapeLayer 子层的 UIScrollView,它呈现一条简单的线条。CAShapeLayer 子层有自己的子 CAShapeLayer。这会导致滚动和缩放变慢。层次结构是这样的:
-UIScrollViewLayer -CAShapeLayer -CAShapeLayer
如果我改变这个层次结构,使它只有一层深,我就没有性能问题:
-UIScrollViewLayer -CAShapeLayer -CAShapeLayer
我究竟做错了什么?
我有一个带有 CAShapeLayer 子层的 UIScrollView,它呈现一条简单的线条。CAShapeLayer 子层有自己的子 CAShapeLayer。这会导致滚动和缩放变慢。层次结构是这样的:
-UIScrollViewLayer -CAShapeLayer -CAShapeLayer
如果我改变这个层次结构,使它只有一层深,我就没有性能问题:
-UIScrollViewLayer -CAShapeLayer -CAShapeLayer
我究竟做错了什么?
塞梅尔,
所以我的滚动视图控制器目前正在这样做:
[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]
然后性能要好得多。希望这更有意义。