2010-10-12 55 views
2

我有一個使用drawRect:繪製的UITableViewCell。我正在繪製drawRect中的一個形狀,並且想要在使用單元格進入編輯模式時爲此形狀創建動畫(使用某個參數)。Core Animation和drawRect:

但是,我找不到如何使用drawRect中的動畫參數。有人可以指向我正確的文檔,或者它是不可能的嗎?

謝謝!

回答

4

使用CAShapeLayer研究製作形狀,它有一個動畫的屬性path

CAShapeLayer* shape = [CAShapeLayer layer]; 
// Changing this will implicitly animate to new path 
shape.path = [UIBezierPath bezierPathWithOvalInRect:someRect].CGPath; 
shape.fillColor = [UIColor redColor].CGColor; 

對於在動畫更多的控制,使用CATransaction

+0

確實如此,但您也可以使用CoreAnimation [layer presentationLayer]獲取當前繪製圖層的屬性:] – 2010-10-12 08:20:59

1

你不清楚什麼樣的形狀和什麼樣的動畫。如果你只需要一個基本的形狀,例如正方形,矩形或圓形,就可以避免重寫drawRect,並使用CALayer - 將它添加到單元格的層次結構中。對於其他形狀,您可以對形狀圖層執行相同操作。

您應該考慮繪製視圖內容的drawRect而不是動畫。如果您想使用drawRect渲染視圖,那很好,但是如果您只是要移動形狀,請改爲爲視圖的中心或圖層的位置設置動畫。

如果你想用drawRect來使用Core Animation(我會推薦它),你可能需要爲你的drawRect中使用的自定義屬性設置動畫,但我打賭你想要的是什麼不用drawRect就可以做得更簡單。層是你的朋友,可以在很多情況下幫助你。也許要詳細說明你想要做什麼,有人可以爲你提供更完整的解決方案。

最好的問候。

相關問題