我可以在初始加载视图时旋转 tableview UIRefreshControl(活动指示器),而无需用户向下滑动吗?
Posted
技术标签:
【中文标题】我可以在初始加载视图时旋转 tableview UIRefreshControl(活动指示器),而无需用户向下滑动吗?【英文标题】:Can I spin a tableview UIRefreshControl(activity indicator) on initial loading of the view, without the user swiping down? 【发布时间】:2015-03-08 18:21:14 【问题描述】:我有一个选项卡式应用程序。
应用程序从一个视图为 UITableViewController 的选项卡开始。
在应用程序初始加载时,MBProgressHUD 活动指示器用于向用户指示应用程序当前正在加载行的数据。
如果用户在任何时候想要刷新 TVC 中的数据,他们可以滑动/下拉,这将利用 TVC 顶部的 UIRefreshControl 活动指示器。
我的问题是……这在两种加载数据的形式中并不一致。
我需要选择 MBProgressHUD 或 UIRefreshControl。
我想要后者。那么有没有办法使用 UIRefreshControl 的活动指示器打开我的 TVC 的初始加载,而无需用户启动它?
【问题讨论】:
你试过UIActivityIndicatorView
吗?
【参考方案1】:
使用UIRefreshControl
只需调用[self.refreshControl beginRefreshing]
即可在您的视图加载时显示刷新指示器(例如在您的viewDidAppear
中)。
这将显示刷新控件,就像用户手动拉动刷新一样。
注意:这只会在 tableView 滚动到顶部时显示控件。如果调用beginRefreshing
时tableView有偏移量ios不会将tableView滚动到顶部只是为了显示刷新控件,以避免意外滚动tableview(所以如果您希望tableView滚动到顶部以确保在任何情况下都会显示 refreshControll,您必须先使用 setContentOffset:
将 tableView 滚动到顶部,然后再调用 beginRefreshing
)
【讨论】:
这似乎对我不起作用。尽管 [self.tableView setContentOffset:CGPointMake(0.0,0.0)],但它没有在加载时旋转。我究竟如何使用它来实现初始加载时的刷新控制旋转? - (void) viewWillAppear: (BOOL) 动画 [super viewWillAppear: animated]; self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height); [self.refreshControl beginRefreshing]; 【参考方案2】:- (void) viewWillAppear: (BOOL) animated
[super viewWillAppear: animated];
self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
[self.refreshControl beginRefreshing];
【讨论】:
以上是关于我可以在初始加载视图时旋转 tableview UIRefreshControl(活动指示器),而无需用户向下滑动吗?的主要内容,如果未能解决你的问题,请参考以下文章