活动指标不会以相同的方法停止

Pin*_*kio 2 objective-c uitableview uiactivityindicatorview ios

在方法viewDidLoad中我初始化了一个ActivityIndi​​catorView.然后,在下面的方法中,我发送了活动指示符来启动.当我启动应用程序并运行if语句时,活动指示器会启动,但是当执行调度队列中的操作时,activityIndi​​cator不会停止.这里的方法:

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{

    if([indexPath row] == [_myArray count]-2){

        [_activityIndicator startAnimating];

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{

            //Here I perform some operations

            [self.tableView reloadData];

            [_activityIndicator stopAnimating];
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望在调度队列中执行操作后停止活动指示器!

Kri*_*sky 10

您应该只在主线程上执行UI操作.尝试重构:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{

    //Here I perform some operations

    dispatch_async(dispatch_get_main_queue(), ^{
        [self.tableView reloadData];

        [_activityIndicator stopAnimating];

    });
});
Run Code Online (Sandbox Code Playgroud)