UICollectionview Défilement saccadé lors du chargement de cellules

J'ai une galerie dans mon application en utilisant un UICollectionView. Les cellules sont environ 70,70 taille. Je suis à l'aide de ALAssets de la ALAssetLibrary dans la galerie que j'ai stocké dans une liste.

Je suis en utilisant le schéma habituel pour remplir les cellules:

-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

  mycell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
  mycell.imageView.image = [[UIImage imageWithCGImage:[alassetList objectAtIndex:indexpath.row] thumbnail]];
  return mycell;
}

Ma galerie est de défilement saccadé. Je ne comprends pas pourquoi c'est. J'ai essayé d'ajouter un NSCache pour mettre en cache les images miniatures (pensant peut-être que la création d'images est cher), mais cela n'aide pas pour la performance.

Je m'attends à l'INTERFACE utilisateur pour être beurré comme le stock app.

Je suis maintenant en douter peut-être quelque chose dans le UICollectionViewCell prepareForReuse qui peuvent être maintenant jusqu'à la dequeueReusableCellWithReuseIdentifier méthode, mais à l'aide des instruments que je n'étais pas en mesure de trouver cela.

Toute autre chose qui peut être la cause? Est-il un "plus vite" manière de préparer la UICollectionViewCell ou à dequeue dans un plus rapide de la mode?

  • À l'aide d'instruments, avez-vous repérer un appel de méthode qui prend trop de temps? E. g. 0.02 sec pour la réutilisation d'une cellule est trop pour un défilement fluide.
  • Oui. Après avoir fait cela, j'ai vu la méthode [uicollectionview updatevisiblecellsnow] qui a été appelé des tonnes de fois. Googlé ce problème et a obtenu à cette question stackoverflow.com/questions/16336772/....
  • Essayez de déplacer certaines de la cellule d'affichage, les fonctions liées à l'affichage de la collection du willDisplayCell méthode, et d'autres à la didEndDisplayingCell méthode.
  • Voici ma dernière itération de parfaitement lisse défilement de la collection de visualiser en temps réel la vidéo de prévisualisation (jusqu'à 16 à l'heure: youtu.être/7QlaO7WxjGg de plus, Il utilise une couverture de flux de mise en page personnalisée et de "réflexion" de la vue qui reflète la prévisualisation de la vidéo à la perfection. Le code source est ici: mediafire.com/download/ivecygnlhqxwynr/...
InformationsquelleAutor Avner Barr | 2013-08-27