【发布时间】:2018-02-14 10:41:44
【问题描述】:
我已经在 viewDidLoad() 中实现了如下所示的 refreshControl:
refreshControl = [[UIRefreshControl alloc] init];
if (@available(iOS 10.0, *)) {
self.tableView.refreshControl = refreshControl;
} else {
[self.tableView addSubview:refreshControl];
}
现在我将展示另一个 viewController,它具有选择过滤器的选项。选择这些过滤器后,您将再次返回到具有 refreshControl 的当前 viewController。
我在 viewDidAppear() 中添加了以下代码,用于手动调用 beginRefreshing:
if (self.filterChanged) {
self.filterChanged = NO;
[self.activityTableView setContentOffset:CGPointMake(0, - refreshControl.frame.size.height) animated:YES];
[refreshControl setHidden:NO];
[refreshControl beginRefreshing];
}
我使用 setContentOffset 滚动回顶部并显示 refreshControl。 唯一的问题是假设我的 tableView 在两者之间滚动了一半,那么 refreshControl 之间有很大的差距。
如果我的 tableView 没有滚动,那么它可以正常工作,就像我拉下刷新一样,但如果它是半滚动的,那么尽管给出了 setContentOffset,但 refreshControl 和 tableview 之间还是有很大的差距。
【问题讨论】:
标签: objective-c uirefreshcontrol