UICollectionView mise à jour - la taille de l'article ne change pas
Je vais avoir un problème avec collectionView de la taille de l'élément. Je veux afficher 3 articles en ligne pour le mode Portrait et 6 pour le paysage. J'ai mis en place -layoutSubviews comme ceci:
- (void)layoutSubviews {
[super layoutSubviews];
if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait || ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortraitUpsideDown)) {
//Portrait orientation
self.flowLayoutPortrait.itemSize = CGSizeMake(106, 106);
} else if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft || ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight)) {
//Landscape orientation
self.flowLayoutPortrait.itemSize = CGSizeMake(93, 93);
}
[self.collectionView.collectionViewLayout invalidateLayout];
}
Mais la taille des cellules n'est pas actualisé, il reste toujours le même pour les deux orientations.
Si j'ai créer 2 flowLayouts et l'utilisation:
[self.collectionView setCollectionViewLayout:self.flowLayoutLandscape];
Tout fonctionne, mais je n'aime vraiment pas la façon dont ils sont modifiés. L'Animation est vraiment mauvais.
Et parce que itemSize est la seule propriété qui doit être mis à jour, à l'aide de 1 mise en page semble être la meilleure option.
Comment puis-je savoir collectionView de mise à disposition?
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé cette méthode et pour moi, c'était très beau:
[collectionView.collectionViewLayout invalidateLayout]
danswillRotateToInterfaceOrientation:
Peut-être vous pouvez cellules différentes pour en portrait ou en mode paysage avec des identifiants différents ..
que vous avez juste à recharger les données pour la collecte de vue qu'il 'll certainement le travail.