为什么我的UIActivityIndi​​catorView不会停止动画?

mob*_*bob 3 iphone cocoa-touch uikit uiactivityindicatorview

我正在尝试从我的App Delegate管理活动指示器,这样我的任何视图都可以将指示器调高.所以,我将它作为子视图添加到'window'并按如下方式启动/停止:

- (void)didStartActivity
{
    if( activityIndicator == nil ) {
        activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
        activityIndicator.hidesWhenStopped = YES;
        activityIndicator.center = window.center;
        activityIndicator.transform = CGAffineTransformScale(CGAffineTransformIdentity, 6.0, 6.0);
    }
    NSLog(@"%s: starting the activityIndicator", __FUNCTION__);
    [window addSubview:activityIndicator];
    [activityIndicator startAnimating];
}
Run Code Online (Sandbox Code Playgroud)

我看到日志消息,所以我知道正在调用代码.指标位于中心,默认大小为6倍.但是,stopAnimating并没有停止.我唯一能得出的结论是它需要在当前的视图控制器中运行.

- (void)didStopActivity
{
    NSLog(@"%s: stopping the activityIndicator", __FUNCTION__);
    [activityIndicator stopAnimating];
    [activityIndicator removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*eck 8

您是否尝试从后台线程执行此操作?一个简单而明确的测试是添加:

NSLog(@"thread: %@", [NSThread currentThread]);
Run Code Online (Sandbox Code Playgroud)