UICollectionViewLayout layoutAttributesForElementsInRect et layoutAttributesForItemAtIndexPath
Je me suis mise en œuvre d'un flux personnalisé de mise en page. Il dispose de 2 méthodes principales pour prépondérant pour déterminer le placement de cellules: layoutAttributesForElementsInRect
et layoutAttributesForItemAtIndexPath
.
Dans mon code, layoutAttributesForElementsInRect
est appelé, mais layoutAttributesForItemAtIndexPath
ne l'est pas. Qu'est ce qui détermine ce qui est appelé? D'où vient layoutAttributesForItemAtIndexPath
appelée?
source d'informationauteur Gaurav Sharma
Vous devez vous connecter pour publier un commentaire.
layoutAttributesForElementsInRect:
ne fait pas nécessairement appellayoutAttributesForItemAtIndexPath:
.En fait, si vous sous-classe
UICollectionViewFlowLayout
la mise en page de flux de préparer la mise en page et de mise en cache de la résultante des attributs. Donc, quandlayoutAttributesForElementsInRect:
est appelé, il ne sera pas vous demanderlayoutAttributesForItemAtIndexPath:
mais utilise simplement les valeurs mises en cache.Si vous voulez vous assurer que la mise en page attributs sont modifiés en fonction de votre mise en page, de mettre en œuvre un modificateur pour les deux
layoutAttributesForElementsInRect:
etlayoutAttributesForItemAtIndexPath:
: