0

我创建了滚动视图并在滚动视图中设置了按钮。按钮水平滚动。我创建了表视图作为视图控制器的子视图。单击按钮后,数据将使用 XML Parsing 显示在来自 RSS 提要的表格视图中。所以改变表格视图中的数据,这取决于按钮点击。当我更改为选择下一个按钮时,将开始解析并显示数据。所以需要一些时间。同时,我想显示一些视图或禁用视图(这意味着,在解析时视图被禁用或用户无法执行任何操作,例如使用活动指示器冻结)。在更改每个按钮时,将发生操作。我参考了一些教程,但我不明白?有人告诉我使用同步方法来解决问题。但我对此一无所知。

看我下面的图片,

图片

提前致谢!

问候,
普格尔

4

1 回答 1

1

不要使用同步网络调用来禁用用户输入。提出这个建议的人给了你非常糟糕的建议。

如果您只想禁用当前视图及其子视图的输入,则可以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];
于 2010-08-31T16:14:50.763 回答