UIRefreshControl具有低高度UICollectionView

时间:2016-04-21 11:13:15

标签: ios swift uicollectionview uirefreshcontrol

我有一个视图,其中包含顶部的另一个视图,我用它来显示一些基本信息。它占总视图高度的约40%。在“标题”视图下方,我正在使用可滚动的UICollectionView。现在我已经在我的UICollectionView中添加了一个UIRefreshControl,但是从不会发生刷新,因为用户无法向下拉UICollectionView。当我减小顶视图的高度时,它开始工作,因为有足够的空间来拉下集合视图。

以下是我添加refreshControl的方法:

    self.matchDetailRefreshControl = UIRefreshControl()
    self.matchDetailRefreshControl.addTarget(self, action: #selector(MatchDetailViewController.fetchAll), forControlEvents: .ValueChanged)
    self.collectionView!.addSubview(self.matchDetailRefreshControl)
    self.collectionView!.alwaysBounceVertical = true

看一下这个截图供参考: enter image description here

正如您所看到的,UIRefreshControl没有完全填满,而我的手指已经在屏幕的底部。

我该如何解决?

1 个答案:

答案 0 :(得分:3)

您可以实现scrollViewDidScroll。 如果scrollView的contentOffset超过某个点,则使用beginRefreshing()

以编程方式实现刷新

例如(刷新控件连接到名为'refreshControl'的插座)

func scrollViewDidScroll(scrollView: UIScrollView) {

    let currentOffset = scrollView.contentOffset

    let yOffset = currentOffset.y

    if yOffset < -30.0 && !refreshControl.refreshing {
        refreshControl.beginRefreshing()
    }
}

如果您还没有

,请不要忘记将scrollView的委托设置为self

编辑:抱歉,它是beginRefreshing(),而不是startRefreshing()。