Moin,
ich möchte wenn man die CollectionView runter zieht, dass der Inhalt neu geladen wird.
Folgendes habe ich:
private let refreshControl = UIRefreshControl()
collectionView?.addSubview(refreshControl)
collectionView?.alwaysBounceVertical = true
refreshControl.addTarget(self, action: #selector(refreshByControl), for: UIControlEvents.valueChanged)
refreshControl.attributedTitle = NSAttributedString(string: "Lädt")
@ObjC func refreshByControl(){
DispatchQueue.main.async {
self.data = [EventModel]()
self.loadEventData()
}
}
Das funktioniert auch erstmal alles soweit. Manchmal bekomme ich aber eine Fehlermeldung in "cellForItemAt" das der Indexpath.row nicht passt. Haben wohl einige das Problem im Netz. Viele sagen das man in cellForItemAt abfragne soll ob er noch refresht oder nicht mit refreshControl.isRefreshing. Da meckert er bei mir und will auf jedenfall das eine Zelle zurückgegeben wird.
Füge ich folgendes ein funktioniert es self.collectionView?.reloadData()
@ObjC func refreshByControl(){
DispatchQueue.main.async {
self.collectionView?.reloadData()
self.data = [EventModel]()
self.loadEventData()
}
}
Flackert aber unschön.
Jemand eine Idee?
ich möchte wenn man die CollectionView runter zieht, dass der Inhalt neu geladen wird.
Folgendes habe ich:
private let refreshControl = UIRefreshControl()
collectionView?.addSubview(refreshControl)
collectionView?.alwaysBounceVertical = true
refreshControl.addTarget(self, action: #selector(refreshByControl), for: UIControlEvents.valueChanged)
refreshControl.attributedTitle = NSAttributedString(string: "Lädt")
@ObjC func refreshByControl(){
DispatchQueue.main.async {
self.data = [EventModel]()
self.loadEventData()
}
}
Das funktioniert auch erstmal alles soweit. Manchmal bekomme ich aber eine Fehlermeldung in "cellForItemAt" das der Indexpath.row nicht passt. Haben wohl einige das Problem im Netz. Viele sagen das man in cellForItemAt abfragne soll ob er noch refresht oder nicht mit refreshControl.isRefreshing. Da meckert er bei mir und will auf jedenfall das eine Zelle zurückgegeben wird.
Füge ich folgendes ein funktioniert es self.collectionView?.reloadData()
@ObjC func refreshByControl(){
DispatchQueue.main.async {
self.collectionView?.reloadData()
self.data = [EventModel]()
self.loadEventData()
}
}
Flackert aber unschön.
Jemand eine Idee?