UICollectionView UIRefreshControl不动画访问不同的视图

问题描述:

后,我有连接到这样定义为拉来刷新UICollection一个UIRefreshControl:UICollectionView UIRefreshControl不动画访问不同的视图

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

这工作得很好。但是,无论是通过按下新的视图控制器还是显示滑动边栏菜单来移动到新视图,并返回到此视图,刷新控件都会开始显示一直拉到的控件的图像(即,它不会生成动画并显示完整的圆圈)。但是,如果我完全拉下并释放,刷新控件将恢复正常功能。控制工作正常,在您在其他地方导航后第一次拉动时,它看起来很时髦。

我很想知道什么可能会出错。谢谢!

这是图片的样子时不工作(注意,我链接到一个在线的形象,这是不是从我的应用程序,所以这并不表明的CollectionView被拉低):

demonstrative image

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

加载完成你得后停止刷新

[tableView.refreshControl endRefreshing] 

希望其对你有用.. :)

+0

谢谢你为我工作 – 2014-09-24 03:39:46

+0

我打电话endRefreshing在startRefresh选择,而且每一次工作正常,但在上述情况。当你完成加载后说,你的意思是每次加载视图?例如,在视图中会出现什么? – 2014-09-24 03:52:17

+1

呼吁viewDidLoad并尝试 – moosa0709 2014-09-24 03:57:13

我有一个稍微不同的问题,但症状相似。这是对我工作:

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

    _refreshControl.hidden = YES; 
} 

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