2

UIBezierPaths を使用して描画したいカスタム形状があり、この描画をビュー内の CALayer として使用したいと考えています。使用するベジエ パスは、UIView (drawRect 内) に直接描画すると機能します。同じベジエ描画を使用して、CALayer 内で描画を実行する方法について知りたいです。次に、このレイヤーをビュー内のサブレイヤーとして追加します!

たとえば、ベジェ パスで同心円を描いていて、これを CALayer を使用して描画したいとします。中心、半径、startAngle、endAngle などのパスのカスタム プロパティをアニメーション化するにはどうすればよいでしょうか?

具体的には、どのようにすればよいか知りたい

  1. CALayer の配置 (初期化、描画、更新描画など)
  2. CALayer 内でベジエを描画するにはどうすればよいですか?
  3. レイヤーとそれを含むビューの間でやり取りするにはどうすればよいですか?

どんな助けでも大歓迎です!

4

1 に答える 1

4

CALayer で UIBezierPath を作成および描画する方法は次のとおりです。CAShapeLayer を使用するのが最も簡単な方法です。

UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:...]; 
CAShapeLayer *circleLayer = [CAShapeLayer layer];
circleLayer.path = circlePath.CGPath;
[self.view.layer addSublayer:circleLayer];

これは、 CALayers でアニメーション化可能なプロパティを作成するための優れたチュートリアルです。

于 2013-09-23T09:47:40.653 に答える