2012年2月27日月曜日

CALayerのsublayer達を初期化する方法

RandomReelの改修中にCALayerに乗せたsublayer達を初期化しようとしたのだが
下手に考えすぎて
for (CALayer* sublayer in [superLayer sublayers]) {
    [sublayer removeFromSuperlayer];
}
とかやっても駄目だった。
ググったら海外にも同じことやった人がいた。

http://stackoverflow.com/questions/2067578/removing-all-calayers-sublayers

というわけで
superLayer.sublayers = nil;
だけでいいのね。
冷静に考えれば確かにそれでsublayer達はreleaseされるのか。

0 件のコメント: