我可以在初始加载视图时旋转 tableview UIRefreshControl(activity indicator),而无需用户向下滑动吗?

Can I spin a tableview UIRefreshControl(activity indicator) on initial loading of the view, without the user swiping down?

我有一个选项卡式应用程序。

应用程序开始于一个视图为 UITableViewController 的选项卡。

在应用程序初始加载时,MBProgressHUD activity 指示器用于向用户指示应用程序当前正在加载行数据。

如果用户在任何时候想要刷新 TVC 中的数据,他们可以 swipe/pull 向下,这将利用 TVC 顶部的 UIRefreshControl activity 指示器。

我的问题是...这在两种加载数据的形式中并不一致。

我需要选择 MBProgressHUD 或 UIRefreshControl。

我喜欢后者。那么有没有办法使用 UIRefreshControl 的 Activity 指示器打开我的 TVC 的初始加载,而无需用户启动它?

使用 UIRefreshControl 只需调用 [self.refreshControl beginRefreshing] 即可在您的视图加载时显示刷新指示器(例如在您的 viewDidAppear 中)。

这将显示刷新控件,就像用户手动拉动刷新一样。


注意:这只会在 tableView 滚动到顶部时显示控件。如果调用 beginRefreshing 时 tableView 有偏移量 iOS 不会将 tableView 滚动到顶部只是为了显示刷新控件,以避免意外滚动 tableview(所以如果你希望 tableView 滚动它到顶部以确保在任何情况下都显示 refreshControll,您必须先使用 setContentOffset: 将 tableView 滚动到顶部,然后再调用 beginRefreshing)

- (void) viewWillAppear: (BOOL) animated
{
    [super viewWillAppear: animated];

    self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
    [self.refreshControl beginRefreshing];    

}