UIActivityIndicatorView 正确使用
Posted
技术标签:
【中文标题】UIActivityIndicatorView 正确使用【英文标题】:UIActivityIndicatorView proper usage 【发布时间】:2012-09-27 13:17:02 【问题描述】:我的问题是关于在 iPhone 项目中使用活动指示器的问题。 我有一个包含 UIActivityIndicatorView 的类
@interface StatusView : UIView
UIActivityIndicatorView *indicator;
UILabel *textLabel;
- (id)initWithFrame:(CGRect)frame Text:(NSString*)text andShowIndicator:(BOOL)value;
在我的业务逻辑代码中,我调用 [indicator startAnimating] 并且框架出现在屏幕底部。该代码还包含一个释放指标的dealloc方法
- (void)dealloc
[indicator release];
[super dealloc];
大多数情况下,该指标运行良好,但也有少数情况下永远不会消失。
我是否总是需要显式调用 stopAnimating 方法?发布是否处理它? 正确的用法是什么?
【问题讨论】:
将指标 hidesWhenStopped 设置为 YES。每次想要停止时,都必须调用 stopAnimating 方法。 它会以某种方式自动停止吗? 【参考方案1】:stopAnimating:
方法停止 UIActivityIndicatorView
的***,release
释放对象。在 Objective-C 中,每个对象都有一个内部计数器,用于跟踪对象或对象使用的所有引用拥有。 [object retain]
将计数器加 1,[object release]
将计数器减 1。当计数器达到零时,将调用 dealloc。 release
是关于内存管理的,而 stopAnimating:
是 UIActivityIndicatorView
的功能。
因此,如果您想停止为 UIActivityIndicatorView
设置动画,则必须调用 stopAnimating:
方法。在 ARC 中不必使用release
,所以最好使用ARC
。
【讨论】:
【参考方案2】:当你使用这个对象时,最好的方法是当你想停止时 stopAnimating,从超级视图中移除( [activityObject removeFromsuperview] ),最后释放它。 [活动对象释放];
【讨论】:
以上是关于UIActivityIndicatorView 正确使用的主要内容,如果未能解决你的问题,请参考以下文章
UIActivityIndi catorView未在webview中显示
UIButton里面的UIActivityIndicatorView
Swift UIPageViewController & UIActivityIndicatorView
如何在 UIAlertView 的中心添加 UIActivityIndicatorView?