J'ai un UICollectionView dans un UITableViewCell. Vous pouvez consulter l'image au hereSwift 3 - Recharger UICollectionView dans la UITableViewCell
Je voudrais recharger la CollectionView si une mise à jour arrive.
Je l'ai fait quelques recherches et trouvé ceci:
- 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
J'ai appelé le @IBOutlet weak var collectionView: UICollectionView!
UITableViewCell
-UITableViewController
à cellForRowAt
.
Voici le 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
}
Si l'utilisateur clique sur Ok
UIAlertAction:
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)
La raison pour laquelle je mets le refreshNow
est d'empêcher les applications de retard et lent. Mais n'a toujours pas mis à jour si des changements se produisent.
Le problème est le CollectionView n'a pas rafraîchir. Mais quand j'ai débogué, il a été passé par le cell.collectionView.reloadData()
.
La mise à jour/changements se produisent que lorsque je redémarre les applications. Je veux qu'il soit appelé real-times
mise à jour.
Toute aide est vraiment apprécié et merci beaucoup.
Crédit: How to use StoryBoard quick build a collectionView inside UITableViewCell
essayez d'appeler des données de rechargement sur le thread principal en utilisant la file d'attente de répartition. –
@TusharSharma quelle partie? à 'cellForRowAt'? – Sariyanti
oui appelez une file d'attente d'expédition là-bas et à l'intérieur de celle-ci appelez la ligne de données de rechargement. –