var refreshControl: UIRefreshControl = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
collectionview.delegate = self
collectionview.dataSource = self
refreshControl.addTarget(self, action: #selector(HomeViewController.refreshData), for: UIControlEvents.valueChanged)
fetchPosts()
collectionview.addSubview(refreshControl)
}
@objc func refreshData() {
refreshControl.endRefreshing()
}
我有一个带有一些ViewController的UITabBar。在ViewController中,我有一个UICollectionView,其中有用户的图像。每个用户都可以加载图像,并在控制器中使用UICollectionView查看此图像。加载照片后,在UICollectionView中它不会出现,因为必须刷新数据。在函数RefreshData中,我该怎么做才能刷新UICollectionView?
答案 0 :(得分:0)
您可以使用以下方式刷新集合视图:
@objc func refreshData() {
collectionview.reloadData()
refreshControl.endRefreshing()
}
您还可以考虑使用简单的图像缓存库,例如AlamofireImage,以避免对此进行完整的集合视图刷新。
答案 1 :(得分:0)
您只需要为reloadData()
拨打collectionView
,即
@objc func refreshData()
{
self.collectionView.reloadData()
refreshControl.endRefreshing()
}
IBOutlet
中collectionView
必须有ViewController
。
答案 2 :(得分:0)
@objc func refreshData()
{
self.arr.removeAll()
fetchPosts()
self.collectionView.reloadData()
refreshControl.endRefreshing()
}
API调用
func fetchPosts() {
self.arr.removeAll()
//API call code..
//after success response you need to reload collectionView
}
您需要在需要刷新时调用api,以便获得更新的数据。在API响应中,当您获得成功的响应时,还需要self.collectionView.reloadData()
。