使用新数据再次删除和添加Collection视图,但仍显示旧数据。 (不需要重新加载,只需要删除并使用新数据再次添加集合视图)
说明 问题如下:
这正是我在swift中所做的:
func onSwitchingPerspective(url: String) {
headerArray.removeAll() // REMOVED THE HEADER AND CONTENT ARRAY
contentArray.removeAll()
self.customHeaderCollectionView.removeFromSuperview() // REMOVED THE HEADER AND CONTENT COLLECTION VIEWS
self.customContentCollectionView.removeFromSuperview()
DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async { // NEED GLOBAL QUEUE TO CALL API AND LATER UPDATE UI ON MAIN THREAD
(self.headerArray, self.contentArray) = self.getEventsData(URL: url)
DispatchQueue.main.async {
self.showHeaderCollectionView() // ADDED THE COLLECTION VIEWS AGAIN
self.showContentCollectionView()
self.customContentCollectionView.collectionViewLayout.invalidateLayout() // CODE TO RELOAD BOTH THE COLLECTION VIEWS
self.customContentCollectionView.reloadData()
self.customContentCollectionView.scrollToItem(at: IndexPath(row: 0, section: 0), at: .top, animated: false)
self.customHeaderCollectionView.collectionViewLayout.invalidateLayout()
self.customHeaderCollectionView.reloadData()
self.customHeaderCollectionView.scrollToItem(at: IndexPath(row: 0, section: 0), at: .top, animated: false)
}
}
}
答案 0 :(得分:0)
没有
self.collectionView.reloadData()
它只显示您以前的数据..必须在
之后重新加载headerArray.removeAll() // REMOVED THE HEADER AND CONTENT ARRAY
contentArray.removeAll()