不要使用同步网络调用来禁用用户输入。提出这个建议的人给了你非常糟糕的建议。
如果您只想禁用当前视图及其子视图的输入,则可以self.view.userInteractionEnabled = NO;
在视图控制器中执行。
如果要禁用整个窗口的输入,可以执行self.view.window.userInteractionEnabled = NO;
如果您在用户界面上覆盖全屏视图,则根本不需要禁用用户交互。根据您的模型图像,我认为这就是您想要做的。为此,您可以执行以下操作:
self.overlayView = [[[UIView alloc] initWithFrame:self.view.window.bounds] autorelease];
self.overlayView.backgroundColor = [UIColor blackColor];
self.overlayView.alpha = 0.5f;
[self.view.window addSubview:self.overlayView];
self.activityIndicator = [[[UIActivityIndicator alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
self.activityIndicator.center = self.view.window.center;
[self.view.window addSubview:self.activityIndicator];
[self.activityIndicator startAnimating];
self.activityLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
self.activityLabel.text = @"Loading...";
[self.activityLabel sizeToFit];
self.activityLabel.center = CGPointMake(self.activityIndicator.center.x, self.activityIndicator.center.y - self.activityIndicator.frame.size.height);
[self.view.window addSubview:self.activityLabel];