【问题标题】:What's the proper way to indicate loading activity on UITableView on iOS 7?在 iOS 7 上的 UITableView 上指示加载活动的正确方法是什么?
【发布时间】:2013-10-31 04:55:05
【问题描述】:

我知道我可以在任何时候使用SVProgressHUD 向用户展示正在整个屏幕上加载的内容。

但是,在 iOS 7 设计指南中,有没有一种传统方式可以在 UITableView 内显示活动指示器或微调器。我认为 SVProgressHUD 在 iOS 7 中只是丑陋,我认为必须有更好的解决方案。

Apple 的做法是什么?

【问题讨论】:

    标签: ios uitableview ios7


    【解决方案1】:

    苹果的做法是在表格视图的顶部显示活动指示器。

    您可以检查 Native Mail 应用程序的工作情况。

    实施 -

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
    self.refreshControl = refreshControl;
    

    您可以使用这些方法开始/停止刷新。

    --开始刷新 – 结束刷新

    【讨论】:

    【解决方案2】:

    我也考虑了这个问题,并提出了以下解决方案:

    通过利用表格视图的backgroundView 属性,您可以设置一个专用的背景视图,该视图可以按照您想要的方式设置样式。

    1. 在 Storyboard 中创建一个 UIViewController 并按照您想要的方式设置视图的样式。我的建议:一个 UIActivityIndi​​catorView 和一个 UILabel 水平和垂直居中。
    2. 为视图控制器设置故事板 ID。
    3. 在viewDidLoad 方法中粘贴以下代码,将创建的视图分配给表格视图的背景。确保将标识符替换为之前设置的任何内容。

      self.tableView.backgroundView = ((UIViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"yourStoryboardID"]).view;
      self.tableView.backgroundColor = [UIColor whiteColor];
      
    4. 当您准备好隐藏加载视图时,只需执行以下操作:

      self.tableView.backgroundView.hidden = YES;
      

    我希望这会有所帮助。

    【讨论】:

    • 来自 tableView.backgroundView 的文档:“您必须将此属性设置为 nil 才能设置表格视图的背景颜色。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2015-07-30
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多