This question already has answers here:
UIRefreshControl - beginRefreshing not working when UITableViewController is inside UINavigationController
(15个答案)
7年前关闭。
调用
我的UITableViewController子类使用UIRefreshControl
它与用户交互(当用户将 table 放下时)完美配合,然后可以看到微调器。
但是,当我在viewDidLoad上调用
笔记:
self.refreshControl引用是正确的 在beginRefreshing之后,不会立即调用 reloadData或endRefreshing,但是存在较长的延迟时间(通过网络加载数据),因此我不会取消beginRefreshing。
编辑 :
仅当
(15个答案)
7年前关闭。
调用
beginRefreshing
时,我看不到正在加载的微调器[self.refreshControl beginRefreshing];
我的UITableViewController子类使用UIRefreshControl
// refresh
UIRefreshControl * refreshControl = [UIRefreshControl new];
[refreshControl addTarget:self action:@selector(refreshTableView) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
它与用户交互(当用户将 table 放下时)完美配合,然后可以看到微调器。
但是,当我在viewDidLoad上调用
beginRefreshing
时,我看不到微调器(仅当我将表格向下拖动时)。笔记:
编辑 :
仅当
contentOffset
的tableView
属性为0且我称为[self.refreshControl beginRefreshing]
时,才会发生这种情况。漏洞?特色吗? 最佳答案
对我来说,这似乎是个错误,因为它仅在contentOffset
的tableView
属性为0
时发生
我用以下代码(UITableViewController的方法)修复了该问题:
- (void)beginRefreshingTableView {
[self.refreshControl beginRefreshing];
if (self.tableView.contentOffset.y == 0) {
[UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^(void){
self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
} completion:^(BOOL finished){
}];
}
}
关于ios6 - 调用beginRefreshing并且contentOffset为0时,UIRefreshControl不显示多刺,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16120797/
10-10 19:28