我的iOS应用中存在错误。我正在使用UITableView,我在其中实现了“pull to refresh”控制器,如下所示:
self.refreshControl = [[UIRefreshControl alloc] init];
self.refreshControl.backgroundColor = [UIColor clearColor];
self.refreshControl.tintColor = [UIColor blackColor];
[self.refreshControl addTarget:self
action:@selector(loadTheXML)
forControlEvents:UIControlEventValueChanged];
但是,我有一个小虫子。如果我向下滚动表格,如果我点击状态栏滚动到表格的顶部,则部分显示刷新控制器。这里有一个正在发生的事情的GIF:gif link。
如果我一次使用此刷新控制器,则不再发生错误,当我点击状态栏时,它会滚动到表格的顶部。
有关如何修复此错误的想法吗?
答案 0 :(得分:4)
我遇到了同样的错误,只有当你有一个属性标题时才会发生。它也会发生,如果我第一次点击搜索栏,结果是相同的。 这是一个对我有用的解决方法:
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
if(self.refreshControl!=nil)
{
[self.refreshControl beginRefreshing];
[self.refreshControl endRefreshing];
}
return scrollView.scrollsToTop;
}
答案 1 :(得分:0)
AlexeyIS'解决方法的略微改进版本只会调用该代码一次:
- (void)awakeFromNib {
super.awakeFromNib();
if (self.refreshControl != nil) {
[self.refreshControl beginRefreshing];
[self.refreshControl endRefreshing];
}
}
答案 2 :(得分:0)
我也有同样的问题。在我的代码中,我正在重新加载UITableView,然后为刷新控件设置属性标题。
解决方法是首先设置刷新控件的标题,然后重新加载UITableView。