Le rechargement d'une UICollectionView à l'aide de reloadData méthode renvoie immédiatement avant le rechargement de données

J'ai besoin de savoir quand le rechargement d'une UICollectionView a été effectuée afin de configurer les cellules par la suite (parce que je ne suis pas la source de données pour les cellules - autres sage aurait déjà fait...)

J'ai essayé le code, tel que

[self.collectionView reloadData];
[self configure cells]; //BOOM! cells are nil

J'ai aussi essayé d'utiliser

[self.collectionView performBatchUpdates:^{
  [self.collectionView reloadData];
    } completion:^(BOOL finished) {
        //notify that completed and do the configuration now
  }];

mais quand je recharge les données que je reçois des accidents.

Comment puis-je recharger les données dans la collection, et seulement quand il a fini de rechargement - faire un particulier gestionnaire d'achèvement

  • Je pense que j'ai rencontré simmilar question. Le problème est que les cellules sont chargés lors de layoutSubview qui a lieu lors de la prochaine exécution de la boucle de passe. Malheureusement, je n'ai pas trouver de solution pour le moment. Je me demande pourquoi UICollectionViewDelegate n'a pas des méthodes comme: - collectionView:willBeginDisplayingCell:forItemAtIndexPath: tout y est: – collectionView:didEndDisplayingCell:forItemAtIndexPath: Avez-vous résoudre ce un déjà?
  • Ce qui se passe est que le lot de mises à jour de bloc attend que vous pour faire des appels pour ajouter et supprimer des lignes/sections qui correspondent avec le nouveau nombre de lignes et de sections qui se produit au cours de la recharger. Si cela ne se produit pas, une assertion est levée.
InformationsquelleAutor Avner Barr | 2013-08-14