【问题标题】:iOS - Show UIActivityIndicatorView when table is being loadediOS - 加载表格时显示 UIActivityIndi​​catorView
【发布时间】:2011-06-22 11:42:08
【问题描述】:

我有一个标签栏应用程序。我有 2 个问题。

  • 使用默认图像 应用程序是否启用 应用程序初始化自身( 第一个视图显示在 MainView.xib) 在后台同时 图片正在显示?

  • 触摸第二个选项卡 应用程序,该应用程序将 将数据加载到UITableView。这 需要一些时间(获取一些数据 来自互联网)所以从 第一个标签到第二个标签有 餐桌前的延迟 显示在第二个选项卡中。我想要 显示 UIActivityIndicatorViewUITableView 正在填充 然后想要 UIActivityIndicatorView 消失 当UITableView 完成时 加载。我怎样才能做到这一点?

【问题讨论】:

  • 我添加了objective-c代码。
  • 如果我的答案是正确的,请标记为答案:)

标签: objective-c cocoa-touch uitableview uiactivityindicatorview


【解决方案1】:

您可以在活动中使用它:

protected Dialog onCreateDialog(int id) {
        ProgressDialog progress = new ProgressDialog(this);
        progress.setMessage("The information is gathered, one moment please.");
        progress.setIndeterminate(true);
        progress.setCancelable(false);
        progress.setCanceledOnTouchOutside(false);
        return progress;
}

一旦你在活动中(或在活动上)调用它,这将显示一个警报:

showDialog(0x0001);

当对话框必须淡出时调用:

removeDialog(0x0001);

编辑

现在是objective-c:

UIAlertView alert = [UIAlertView initWithTitle:@"a title" message:@"a message" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil]
[alert show];

if(alert != nil) {
        UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

        indicator.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height-45);
        [indicator startAnimating];
        [alert addSubview:indicator];
        [indicator release];
}

编辑 删除它是这样完成的:

[alert dismissWithClickedButtonIndex:0 animated:YES];
[alert release];

/编辑

这对我有用:) 它可能并不完全正确,因为我将浏览器中的一些内容更改为现在查看公司机密等 xD :)。 随意询问有关它的内容。

【讨论】:

  • 谢谢,但这个问题一般与 Objective-C 和特定的 iOS(不是 Android)有关。
  • 哦,对不起,我打开了错误的项目,甚至没有错误的操作系统...我马上给你一个工作的 ios 版本。
  • 谢谢!那么您如何知道代码中的 UITableView 何时(在我的情况下已完成加载数据以便您可以关闭 UIActivityIndi​​catorView?)
  • 我将它用于完全相同的事情。我所做的是在一个单独的类中从互联网获取数据,当处理这个的方法被称为警报时。然后它将下载(并在我的情况下解析 xml)并将下载/解析的信息放入数组中。完成后,我停止警报并打开新页面。因为 ios 将始终只加载屏幕上显示的内容,因此不会花费很长时间。其余部分在向上/向下滚动时加载。
  • 你能告诉我在填充数组后停止警报的代码吗?
【解决方案2】:
  1. 是的。即使您不提供任何默认图像,它也会加载第一个显示黑屏的视图控制器。

  2. 在第二个视图控制器的loadView 中显示活动指示器视图。并且,将所有加载代码放入您的第二个视图控制器 viewDidAppear: 方法中。通过这样做,您的第二个视图控制器将在您按下第二个选项卡时显示活动指示器视图。加载完成后,关闭活动指示器。这将使您从一个选项卡平滑过渡到另一个选项卡。

【讨论】:

  • 感谢您的回答。你能用一些代码来举例吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多