如果UIAcivityIndicatorView被移除/释放/释放,它是否会自行停止动画



我在表单元格的accessoryView中使用UIActivityIndicator。实际上,它是另一个视图(即单元格的accessoryView)的子视图,如下所示:

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

对于我的用例,我不再需要访问指示符视图。此外,如果完整的视图将被删除(由于取消ViewController),我不关心那些UIActivityIndicators。

那么,这种类型的使用是否安全,不会产生任何内存/资源剩余?我已经检查过,UIActivityIndicatorViewdealloc被调用了(事实确实如此),所以我认为在视图层次结构被破坏时,动画也会自动停止/删除。

我的假设正确吗?

是的,一旦您放弃了指标的所有权,视图层次结构仍然是唯一的所有者。如果从视图层次结构中删除了一个超级视图,而该视图没有保留在其他位置,则该超级视图将释放其所有子视图。如果子视图的保留计数为零,则会解除分配。这就是您的指标视图所发生的情况。

最新更新