0

単純な線をレンダリングする CAShapeLayer サブレイヤーを持つ UIScrollView があります。CAShapeLayer サブレイヤーには、独自のサブ CAShapeLayer があります。これにより、スクロールとズームが遅くなります。階層は次のようになります。

-UIScrollViewLayer -CAShapeLayer -CAShapeLayer

この階層を変更して、1 レベルのみの深さになるようにすると、パフォーマンスの問題は発生しません。

-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 に答える