【问题标题】:UICollectionView UIRefreshControl Doesn't Animate After Visiting a Different ViewUICollectionView UIRefreshControl 在访问不同的视图后没有动画
【发布时间】:2014-09-24 03:17:27
【问题描述】:

我有一个 UIRefreshControl 连接到一个以这种方式定义的 UICollection 用于拉刷新:

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

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

我希望能就可能出现的问题提供任何反馈。谢谢!

这是图片不工作时的样子(注意我链接到一个在线图片,这不是来自我的应用程序,所以这并不表明 collectionview 正在被拉下):

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

【问题讨论】:

    标签: ios uicollectionview uirefreshcontrol


    【解决方案1】:

    加载完成后必须停止刷新

    [tableView.refreshControl endRefreshing]
    

    希望它对你有用..:)

    【讨论】:

    【解决方案2】:

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

    - (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];
    
      _refreshControl.hidden = YES;
    }
    
    - (void)viewDidLayoutSubviews {
      [super viewDidLayoutSubviews];
      if (_refreshControl.isRefreshing) {
        [self.collectionView sendSubviewToBack:_refreshControl];
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多