我在表格单元的accessoryView中使用UIActivityIndicator。实际上它是另一个View(它是单元格的附件视图)的子视图,如下所示:
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[anotherView addSubview:activityIndicator];
[activityIndicator startAnimating];
[activityIndicator release];
cell.accessoryView = anotherView;
对于我的用例,我不再需要访问指标视图。此外,如果完整视图将被删除(由于解雇ViewController),我不关心那些UIActivityIndicators。
这种类型的使用是否安全且不会产生任何内存/资源剩余?我已经检查过dealloc
UIActivityIndicatorView
被调用(并且它是),所以我认为动画也将自动停止/移除,同时视图层次结构被破坏。
我的假设是否正确?
答案 0 :(得分:4)
是的,一旦您放弃了指标的所有权,视图层次结构仍然是唯一的所有者。如果从视图层次结构中删除了超级视图,并且如果它未在其他位置保留,则superview将释放其所有子视图。如果子视图的保留计数为零,则将其取消分配。这是指标视图发生的情况。