我有一个视图,其中包含顶部的另一个视图,我用它来显示一些基本信息。它占总视图高度的约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
正如您所看到的,UIRefreshControl没有完全填满,而我的手指已经在屏幕的底部。
我该如何解决?
答案 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()。