0

J'ai actuellement un UICollectionViewCell personnalisé où je remplace setSelected:. Le fichier d'en-tête indique: The collection view may call the setters inside an animation block. La sélection est animée, mais je ne veux pas l'animation.Comment désactiver les animations de sélection dans un UICollectionView?

animated selection

J'ai essayé de désactiver l'animation avec:

[UIView performWithoutAnimation:^{ 
    self.label.font = font; 
}]; 

En plus +[UIView setAnimationsEnabled:], mais l'animation est toujours présente. Je suppose que le changement de police n'est pas lui-même animé, mais il déclenche un passage de mise en page puisque l'étiquette est maintenant plus grande. Y a-t-il un moyen de désactiver la disposition de la cellule?

Répondre

1

La définition de la police déclenche une mise en page. Forcer un passage de mise en page immédiat empêche toute animation visible lorsque la cellule est sélectionnée/désélectionnée. Ceci est ma cellule personnalisée setSelected: méthode:

- (void) setSelected:(BOOL)selected; 
{ 
    [super setSelected:selected]; 
    self.label.font = self.selectedFont; 
    [self layoutIfNeeded]; // force layout to avoid UICollectionView animation 
}