ich eine UICollectionView in einem UITableViewCell haben. Sie können das Bild beziehen sich auf hereSwift 3 - Reload UICollectionView innerhalb des UITableViewCell
ich die Collection nachladen möchte, ob Updates passieren.
Ich habe einige Nachforschungen gemacht und fanden diese:
- how to reload a collectionview that is inside a tableviewcell
- Reloading collection view inside a table view cell happens after all cells in table view have been loaded
- UICollectionView not updating inside UITableViewCell
ich die @IBOutlet weak var collectionView: UICollectionView!
UITableViewCell
-UITableViewController
bei cellForRowAt
genannt. Hier
ist der Code:
var refreshNow: Bool = false
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.allCardCell, for: indexPath) as! AllCardTableViewCell
if refreshNow {
cell.collectionView.reloadData()
refreshNow = false
}
cell.collectionView.collectionViewLayout.invalidateLayout()
return cell
}
Wenn der Benutzer Ok
auf UIAlertAction klicken:
let alert = UIAlertController(title: "Success", message: "Card successfully added", preferredStyle: .alert)
let action = UIAlertAction(title: "Ok", style: .default) { (action) in
self.refreshNow = true
self.tableView.reloadData()
}
alert.addAction(action)
self.present(alert, animated: true, completion: nil)
Der Grund, warum ich die refreshNow
gesetzt ist, um die Anwendungen von hinken und langsam zu verhindern. Aber immer noch nicht aktualisiert, wenn irgendwelche Änderungen passieren.
Das Problem ist die Collection hat aufzufrischen nicht. Aber wenn ich debugge, ging es durch die cell.collectionView.reloadData()
.
Das Update/Änderungen nur dann geschehen, wenn ich die apps neu starten. Ich möchte, dass es so genannt wird real-times
Update.
Jede Hilfe ist wirklich und vielen Dank geschätzt.
Bildkredit: How to use StoryBoard quick build a collectionView inside UITableViewCell
versuchen, Neuladen von Daten auf Haupt-Thread mit Dispatch-Warteschlange. –
@TusharSharma welcher Teil? bei 'cellForRowAt'? – Sariyanti
ja rufen Sie eine Dispatch-Warteschlange dort und in ihr rufen Sie Datenlinie neu laden. –