UIActivityIndi​​catorView 正确使用

Posted

技术标签:

【中文标题】UIActivityIndi​​catorView 正确使用【英文标题】:UIActivityIndicatorView proper usage 【发布时间】:2012-09-27 13:17:02 【问题描述】:

我的问题是关于在 iPhone 项目中使用活动指示器的问题。 我有一个包含 UIActivityIndi​​catorView 的类

@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] ),最后释放它。 [活动对象释放];

【讨论】:

以上是关于UIActivityIndi​​catorView 正确使用的主要内容,如果未能解决你的问题,请参考以下文章

UIActivityIndi catorView未在webview中显示

UIButton里面的UIActivityIndi​​catorView

Swift UIPageViewController & UIActivityIndi​​catorView

如何在 UIAlertView 的中心添加 UIActivityIndi​​catorView?

为啥是UIActivityIndi​​catorView!展开时为零?

如何在 UICollectionViewCell 中将 UIActivityIndi​​catorView 居中?