我希望使用 UIRefreshControl
实现 Pull To Refresh 功能到我的 UITableViewController
,以下是我目前尝试的方法。
- (void)viewDidLoad
{
.....
////********* Pull to refresh ************/
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
refresh.tintColor = [UIColor magentaColor];
// [self.tableView addSubview:refresh];
// [self.refreshControl setEnabled:YES];
[refresh addTarget:self action:@selector(pullToRefresh:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refresh;
}
-(void)pullToRefresh:(UIRefreshControl *)refresh {
[refresh beginRefreshing];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Refreshing.."];
[self loadRecentActivities];
}
但是当我拉动表格时,既没有看到活动指示器也没有看到标题,但是
pullToRefresh
已经被调用并且表格已经刷新。我的应用支持 iOS7.0+。
我缺少了什么?非常感谢您的帮助!
编辑: 我已尝试使用 [self.refreshControl setEnabled:YES];
和 [self.refreshControl setEnabled:YES];
如我编辑后的代码中所述,但还是没有成功。
这是我拉动表格以进行刷新时的样子-![enter image description here](https://istack.dev59.com/n9hUG.webp)
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundView = imageView;
刷新指示器和标题被隐藏在 self.tableView.backgroundView
后面,应改用
[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];
它解决了我的问题。同时非常感谢Balram Tiwari,请查看他的答案,如果您仍然有问题。