2011-05-25 87 views
3

我在表單元格的accessoryView中使用UIActivityIndi​​cator。其實這是anotherView的子視圖(這是細胞的accessoryView的),如下圖所示:UIAcivityIndi​​catorView是否自行停止動畫,如果它被移除/釋放/釋放

UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] 
    initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
[anotherView addSubview:activityIndicator]; 
[activityIndicator startAnimating]; 
[activityIndicator release]; 
cell.accessoryView = anotherView; 

對於我的使用情況下,我並不需要訪問指示燈查看更多。此外,如果完整的視圖將被刪除(由於解僱ViewController),我不關心那些UIActivityIndi​​cators。

那麼這種使用方式是否安全並且不會產生任何內存/資源剩餘物?我檢查過,UIActivityIndicatorViewdealloc被調用(它是),所以我會假設動畫將被自動停止/刪除,同時視圖層次被破壞。

我的假設是否正確?

回答

4

是的,一旦你放棄了指標的所有權,視圖層次仍然是唯一的所有者。如果超級視圖從視圖層次結構中刪除,並且如果它不保留在其他位置,則超級視圖將釋放其所有子視圖。如果子視圖的保留計數爲零,它們將被釋放。這是您的指標視圖正在發生的事情。