我对UIRefreshControl
有疑问。当我向下滚动collectionView
时,collectionView
的内容会略微上升。
我已经看到了一些关于这个确切问题的问题,但是,我还没有找到一个适合我的答案。 (例如this question)
我在另一个UICollectionViewController
内有一个UIViewCotroller
作为子视图。
我已经像这样实施了UIRefreshControl
:
let refreshControl = UIRefreshControl()
if #available(iOS 10.0, *){
self.collectionView?.refreshControl = self.refreshControl
} else{
self.collectionView?.insertSubview(self.refreshControl, at: 0)
}
self.collectionView?.alwaysBounceVertical = true
refreshControl.addTarget(self, action: #selector(refreshControlChanged), for: .valueChanged)
refreshControl.tintColor = UIColor.custom.blue.classicBlue
此外,我希望我的collectionView在用户停止拖动后刷新数据。
@objc func refreshControlChanged(){
if !(self.collectionView?.isDragging)!{
nextRecommended()
}
}
override func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if refreshControl.isRefreshing{
nextRecommended()
}
}
在nextRecommended()
内:
DispatchQueue.main.async {
self.refreshControl.endRefreshing()
self.collectionView?.reloadData()
}
任何帮助都非常感激。