2013-09-23 118 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