我在使用 UITableView 的项目中添加了 UIRefreshControl 的功能。该应用程序通过将条目从 Web 服务获取到 tableview 来工作。下面是我用来添加 UIRefreshControl 的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.tintColor = [UIColor grayColor];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Updating New Entries"];
[refreshControl addTarget:self action:@selector(pullToRefresh) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
[self pullToRefresh];
}
- (void) pullToRefresh
{
counter = 1;
[self fetchEntriesNew:counter]; // My code for updating table view
[self performSelector:@selector(updateTable) withObject:nil afterDelay:2];
}
- (void)updateTable
{
[self.tableView reloadData];
[self.refreshControl endRefreshing];
}
现在,如果我拉刷新,它会通过添加新条目(如果有)来刷新,并在 tableview 顶部显示以下视图:
一切都很好,除了第一次启动或打开应用程序时,它没有显示我在上图中显示的视图,尽管它确实刷新了 tableview。我希望它每次刷新时都显示刷新控件视图。谁能指出我做错了什么?谢谢!
更新:我添加了 [self refreshControl beginRefreshing] 并且 UIRefreshControl 的微调器视图现在显示,但它在 tableview 的第一个条目之上。谁能指出如何纠正它?