Vis du problème: http://i.imgur.com/TastPR9.gifvtaille d'en-tête Animer UICollectionViewLayout provoque la dissolution croix flash indésirable
func animateHeaderResize(height: CGFloat) {
let layout = self.collectionView?.collectionViewLayout as! UICollectionViewFlowLayout;
layout.headerReferenceSize = CGSize(width: UIScreen.main.bounds.width, height: height);
UIView.animate(withDuration: 1, delay: 0, options: .curveEaseOut, animations: {
self.collectionView?.layoutIfNeeded();
}) { (finished) in
//self.loadPosts();
}
}
Je cherche à animer un changement de la taille d'en-tête d'un UICollectionView à travers ses UICollectionViewLayout. L'animation qui en résulte a un flash étrange et un étirement qui pourrait être une transition de dissolution croisée déclenchée quelque part. J'ai essayé de nombreuses variantes de mise en page de la vue de collection, y compris setCollectionViewLayout (layout: animated :) et implémentation de collectionView (_ collectionView: layout: referenceSizeForHeaderInSection section :) mais toutes résultent de la même animation.
J'ai remarqué que le même clignotement se produit lorsque vous modifiez la taille de l'élément de la vue de collection. Peut-être que c'est un comportement par défaut que je peux modifier? Dois-je sous-classer UICollectionViewFlowLayout? J'ai essayé de chercher et je ne trouve pas de solution, j'apprécierais juste un pas dans la bonne direction.