UICollectionView UIRefreshControl在访问不同视图后没有动画

时间:2014-09-24 03:17:27

标签: ios uicollectionview uirefreshcontrol

我有一个UIRefreshControl连接到一个UICollection,这个定义用于拉取刷新:

    self.refreshControl = [[UIRefreshControl alloc] init];
    [self.refreshControl addTarget:self action:@selector(startRefresh:)
    self.collectionView.alwaysBounceVertical = YES;
    [self.collectionView addSubview:self.refreshControl];

这很好用。但是,每当我通过推动新的视图控制器或显示滑动侧边栏菜单移动到新视图并返回到该视图时,刷新控件开始显示一直拉动的控件的图像(即它没有'动画并显示完整的圆圈)。但是,如果我完全下拉并释放,则刷新控制将恢复正常功能。控制工作正常,在您第一次在其他地方导航后,它看起来很时髦。

我很想知道可能出现问题的任何反馈。谢谢!

这是不工作时图片的样子(注意我链接到在线图片,这不是来自我的应用,所以这并没有显示收集视图被拉下来):

demonstrative image

下面发布的解决方案有效,但我必须做一些额外的工作来弄清楚我的顶视图控制器何时从我正在使用的侧边栏菜单(ECSlidingViewController)获得焦点:Is there a way for the Top View Controller in ECSlidingViewController to know when the sidebar menu has been dismissed?

2 个答案:

答案 0 :(得分:2)

完成加载后你必须停止刷新

[tableView.refreshControl endRefreshing]

希望它对你有用.. :))

答案 1 :(得分:0)

我的问题略有不同,但症状相似。这对我有用:

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];

  _refreshControl.hidden = YES;
}

- (void)viewDidLayoutSubviews {
  [super viewDidLayoutSubviews];
  if (_refreshControl.isRefreshing) {
    [self.collectionView sendSubviewToBack:_refreshControl];
  }
}