2011-05-25 85 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

是的,一旦你放弃了指标的所有权,视图层次仍然是唯一的所有者。如果超级视图从视图层次结构中删除,并且如果它不保留在其他位置,则超级视图将释放其所有子视图。如果子视图的保留计数为零,它们将被释放。这是您的指标视图正在发生的事情。