2013-09-23 85 views
2

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

例如,让我说我正在用我的贝塞尔路径绘制一个同心圆,我想用CALayer绘制这个图形,我将如何去动画路径的自定义属性,如中心,半径,startAngle和endAngle ?

具体来说,我想知道我应该怎么

  1. 安排我的CALayer(初始化,绘制,绘图UPADTE等)
  2. 我怎么画我的CALayer里面的贝塞尔?
  3. 我如何在图层和包含它的视图之间进行交互?

任何帮助表示赞赏!

回答

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