iOS:在正确的位置添加活动指示器(Master-View-Controller)

时间:2015-02-09 16:06:36

标签: ios objective-c master-detail uiactivityindicatorview

我从XCode中的MasterViewController / DetailViewController模板开始。我添加了一个调用,我从Web(JSON)获取数据,并使用它填充数组。

我想在MasterViewController中添加一个活动指示器,并在加载数据时显示它。

但是我不确定如何继续这个和 WHERE 我应该把它。我正在考虑两种选择:

  1. 创建一个自定义单元格,其中只有一个活动指示符并显示 加载数据前只有这个单元格。
  2. 以编程方式将视图上的活动指示符添加为子视图 并在数据加载时显示它。
  3. 任何其他建议? Apple对此有何设计指导原则?

    这是故事编制者所示的项目:

    enter image description here

1 个答案:

答案 0 :(得分:0)

这是一个间接的答案,但你应该看看MBProgressHUD on GitHub

这是一个用于显示模态进度视图的优秀类。支持:

  1. 不确定进度视图(表示旋转活动指示器)
  2. 确定进度视图(您可以在哪里显示实际进度)
  3. 标签:
    • LabelText:HUD的主要文字
    • DetailsLabelText:详细信息/消息文本的地方
  4. 此外,它很容易设计风格,我发现它比尝试添加UIActivityIndicatorView要容易得多。

    例如,这是一种将HUD添加到view UIViewController的简单方法:

    MBProgressHUD *hud          = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.detailsLabelText        = @"Loading...";
    hud.dimBackground           = YES;
    hud.labelText               = @"Please Wait...";
    hud.mode                    = MBProgressHUDModeIndeterminate;
    

    稍后,摆脱它就像:

    [hud dismiss:YES];
    
      

    警告: 这不是您使用UIRefreshControl获得的UITableViewController的替代品。我不确定它是否是必需的,但我总是使用此视图(MBProgressHUD)作为阻塞控件,而后台正在发生某些事情,例如异步数据加载。也就是说,在我的初始数据加载后(当我使用MBProgressHUD时),我在后台执行后续数据刷新而不会中断UI。