2012-04-20 47 views
3

我正在玩C4,似乎無法弄清楚爲什麼我的形狀不動畫。如果我創建了一個形狀像這樣:C4Shape,setFrame不改變形狀的大小(C4Framework)

self.theShape = [C4Shape ellipse:CGRectMake(100, 100, 2, 2)]; 

...後來打電話

[theShape setFrame:CGRectMake(200, 200, 50,50)]; 

形狀不會改變大小。實施建議它應該,但我沒有看到它。有什麼我做錯了嗎?是因爲我沒有更新畫布嗎?

回答

1

在C4中,在C4Shape對象上調用setFrame:不會縮放它。

原因在於改變CAShapeLayer視圖的框架不會改變底層貝塞爾形狀本身......不同於在圖像上調用相同的東西。 UIKit的將縮放圖像和其它內容,但不會規模貝濟耶(據我所知)...

所以,如果它是一個矩形,請致電:

[theShape rect:aNewFrame] 

,或者如果它的橢圓形,撥打:

[theShape ellipse:aNewFrame] 

這種方法構造一個新的形狀,然後利用核心動畫能力隱含動畫舊形狀路徑和新之間的過渡。

+0

啊,謝謝你的解釋。現在正在工作。 – jamesco 2012-04-20 21:22:28