【问题标题】:How to show UIView only when i received all data from server仅当我从服务器收到所有数据时如何显示 UIView
【发布时间】:2013-10-22 08:17:11
【问题描述】:

我在我的应用程序中从服务器获取数据。目前我使用 NSUrlConnection 进行此操作并在connectionDidFinishLoading 中获取数据。同时,当我向用户显示 alertView 时。但那个时候我的观点没有用数据更新。

我只能在整个响应来自服务器并稍后刷新视图时显示。

我可以将视图限制为仅在获得整个响应时才显示,或者我可以使 uialertview 的黑暗效果更暗,从而使包含视图禁用???

编辑:

从所有答案中我想知道我可以使 UIAlertView 的灰色效果更暗还是可以用其他颜色更改它?或者有人可以解释一下它是如何出现的吗??

【问题讨论】:

  • 在下载数据之前不要展示/推动控制器。下载完成后,创建控制器,传递数据,然后呈现/推送它。在此之前向用户显示活动指示器。 IMO,显示警报/阻止 UI 并不是一种好的体验。
  • 这个问题太抽象了。给我们更多细节,以便我们正确回答。我认为您可以在数据开始加载时将具有黑色背景颜色且不透明的重叠视图添加到您的“主”视图中,并在完成后从超级视图中删除重叠视图
  • 记住UIViewControllers 是视图的控制器。数据加载不应该在 UIViewController 中。

标签: iphone ios uiview nsurlconnection


【解决方案1】:

1)在 viewDidLoad 方法中,您可以添加另一个具有深灰色背景色的临时视图。

2) 在此临时视图中添加活动指示器并启动该指示器并为自身视图设置用户交互禁用。

3)在 connectionDidFinishLoading 中停止指示器并删除临时视图并启用用户交互自身视图。

【讨论】:

    【解决方案2】:

    您可以添加较深颜色的叠加层和UIActivityIndicator,在该时间段内禁用 userInteraction

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-27
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2013-08-30
      • 1970-01-01
      相关资源
      最近更新 更多