2

我有一个带有五个选项卡的 UITabBarController 的应用程序。在真实设备上的测试表明,从一个选项卡切换到另一个选项卡可能需要一秒或多秒才能加载视图,因为我还必须从 Internet 下载一些数据。

我想做的是在加载视图时显示 UIActivityIndi​​catorView ,但我找不到解决方案。也许我没有找到正确的方法。

有人可以帮助我吗?

4

2 回答 2

1

您应该使用异步请求下载任何数据,ASIHTTPRequest是一个很好的包装器。

然后对于 UIActivityIndi​​catorView 这些是流行的选项:

  1. 在实际加载视图中的任何其他内容之前,在选项卡上显示它。当数据准备好时,只需将其隐藏并显示完整信息。
  2. 显示您的不完整视图,并使用 UIActivityIndi​​catorView 添加叠加层。
于 2010-10-15T11:17:12.310 回答
1

我这样做的方式:

创建一个带有 UILabel、一个 UIActivityIndi​​cator 和黑色背景的 LoadingViewController 类。

在 ViewDidLoad 方法中,我设置:

[self.view setAlpha:0.0];
[self.activityIndicator startAnimating];

我实现了两种方法:

-(void)appear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.65];
[UIView commitAnimations];
}

-(void)disappear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.0];
[UIView commitAnimations];
}

在标签中,您可以设置自定义文本。

在您正在处理的课程中导入此类,然后调用:

[loadingViewController appear];

[loadingViewController disappear];

我现在没有 Mac,无法验证我是否写了任何错误,但我希望你明白 :)

我总是喜欢为此创建一个自定义类,以防我在应用程序的许多地方都需要它。

于 2010-10-15T11:22:53.147 回答