Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Uiactivityindicator未显示在子视图中_Ios_Objective C_Uiactivityindicatorview - Fatal编程技术网

Ios Uiactivityindicator未显示在子视图中

Ios Uiactivityindicator未显示在子视图中,ios,objective-c,uiactivityindicatorview,Ios,Objective C,Uiactivityindicatorview,我试图在主线程上的tableview控制器的子视图中显示微调器。视图仅在某些情况下显示,通常在我的背景线程完成后显示。这是我的密码: [self.view addSubview:spinnerView]; [self.view bringSubviewToFront:spinnerView]; self.spinnerView.layer.cornerRadius = 8; self.spinnerView.center = CGPointMake

我试图在主线程上的tableview控制器的子视图中显示微调器。视图仅在某些情况下显示,通常在我的背景线程完成后显示。这是我的密码:

[self.view addSubview:spinnerView];
        [self.view bringSubviewToFront:spinnerView];
        self.spinnerView.layer.cornerRadius = 8;
        self.spinnerView.center = CGPointMake(160, 150);

        [spinner startAnimating];

        dispatch_queue_t downloadQueue = dispatch_queue_create("downloader", NULL);
        dispatch_async(downloadQueue, ^ {
            dispatch_async(dispatch_get_main_queue(), ^{
                [NSThread sleepForTimeInterval:10];
                // Add recurring transactions if necessary
                if (tran.recur.id != 0) {
                    [Utilities addRecurringTransactionsUpToCurrentMonthByTransaction:tran];
                }

                [spinner stopAnimating];
                [self dismissViewControllerAnimated:YES completion:nil];
            });
        });
        dispatch_release(downloadQueue);
    }
}

由于所有UI都在主线程上运行,因此必须调用performSelectorOnMainThread:withObject:waitUntilDone:如下所示:

    [self.view addSubview:spinnerView];
    [self.view bringSubviewToFront:spinnerView];
    self.spinnerView.layer.cornerRadius = 8;
    self.spinnerView.center = CGPointMake(160, 150);

    [spinner performSelectorOnMainThread:@selector(startAnimating) withObject:nil waitUntilDone:NO];


    dispatch_queue_t downloadQueue = dispatch_queue_create("downloader", NULL);
    dispatch_async(downloadQueue, ^ {
        dispatch_async(dispatch_get_main_queue(), ^{
            [NSThread sleepForTimeInterval:10];
            // Add recurring transactions if necessary
            if (tran.recur.id != 0) {
                [Utilities addRecurringTransactionsUpToCurrentMonthByTransaction:tran];
            }

            [spinner performSelectorOnMainThread:@selector(stopAnimating) withObject:nil waitUntilDone:NO];

            [self dismissViewControllerAnimated:YES completion:nil];
        });
    });
    dispatch_release(downloadQueue);

这不是Xcode问题。其行为与以前完全相同。微调器工作当前在主线程上。