点击按钮更改视图/是否需要在iPhone中使用同步方法?

时间:2010-08-31 14:35:48

标签: iphone uibutton synchronous

我创建了滚动视图并在滚动视图中设置了按钮。按钮水平滚动。我创建了表视图作为视图控制器的子视图。单击按钮时,数据将使用XML分析从RSS源显示在表视图中。因此,更改表视图中的数据,这取决于按钮单击。当我更改为选择下一个按钮时,将启动解析并显示数据。所以需要一些时间。同时我想显示一些视图或禁用视图(这意味着,在该解析时,视图被禁用或用户无法执行任何操作,例如冻结活动指示符)。在更改每个按钮时,将发生操作。我提到了一些教程,但我无法理解?有人告诉我用同步方法来解决问题。但我对此一无所知。请指导我并帮助我。给我一些示例应用和链接。

见下图,

Image

提前致谢!

的问候,
Pugal

1 个答案:

答案 0 :(得分: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];