使用CALayers绘制自定义形状和动画自定义属性?

时间:2013-09-23 08:42:13

标签: ios uikit core-graphics calayer uibezierpath

我有一个自定义形状,我想使用UIBezierPaths绘制,我想在我的视图中使用此绘图作为CALayer。如果我将它直接绘制到UIView(在drawRect内),我使用的bezier路径是有效的。我想知道如何使用相同的bezier绘图并在我的CALayer中执行绘图。然后我会在视图中添加此图层作为子图层!

例如,假设我正在绘制一个带有bezier路径的同心圆,并且我想使用CALayer绘制它,我将如何设置路径的自定义属性,例如它的center,radius,startAngle和endAngle?

特别是我想知道我应该如何

  1. 安排我的CALayer(初始化,绘图,upadte绘图等)
  2. 我如何在我的CALayer中画出贝塞尔?
  3. 如何在图层与包含它的视图之间进行交互?
  4. 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:4)

以下是您创建&的方法在CALayer中绘制UIBezierPath。使用CAShapeLayer是最简单的方法:

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

这是一个很好的tutorial on creating animatable properties in CALayers