如果UIAcivityIndi​​catorView被删除/释放/取消分配,它是否会自动停止动画

时间:2011-05-25 19:14:15

标签: iphone objective-c cocoa-touch ios

我在表格单元的accessoryView中使用UIActivityIndi​​cator。实际上它是另一个View(它是单元格的附件视图)的子视图,如下所示:

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

对于我的用例,我不再需要访问指标视图。此外,如果完整视图将被删除(由于解雇ViewController),我不关心那些UIActivityIndi​​cators。

这种类型的使用是否安全且不会产生任何内存/资源剩余?我已经检查过dealloc UIActivityIndicatorView被调用(并且它是),所以我认为动画也将自动停止/移除,同时视图层次结构被破坏。

我的假设是否正确?

1 个答案:

答案 0 :(得分:4)

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