web-dev-qa-db-fra.com

UICollectionView Ajuster la taille des cellules pour la taille de l'écran

Actuellement, j'ai une vue de collection qui occupe la majeure partie de mon écran à la taille d'écran de 3,5 pouces.La vue de collection est à 51 pixels du haut et 20 pixels du bas de l'écran. J'utilise les cellules avec UIPageControl pour créer une mise en page paginée, avec une cellule par page. Lors du passage à la taille de 4 pouces, en utilisant des contraintes, je peux obtenir que la vue de collection se développe dans le nouvel espace (en conservant les 51 pixels du haut et 20 du bas), mais la taille de la cellule reste la même, donc maintenant il y a un tas d'espace vide en haut et en bas de la cellule. J'ai essayé d'utiliser des contraintes, mais il semble que vous ne puissiez pas les définir pour les cellules. Comment puis-je agrandir la taille des cellules pour remplir l'espace vide sur l'iPhone 5?

Le code de vue de collection est juste

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
              cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
return cell;

}

La mise en page est configurée dans IB Je veux que la mise en page fonctionne d'abord avant d'ajouter plus

iPhone 5 view. I want to fill the empty space

iPhone 4 view

33
benjih555

Vous pouvez soit utiliser la méthode UICollectionViewFlowLayoutitemSize pour définir la taille UICollectionViewCell, soit utiliser la méthode delegate, collectionView:layout:sizeForItemAtIndexPath: si vous devez définir dynamiquement les tailles de UICollectionViewCells.

71
rdelmar
CollectionView layout Delegate that will help you to resize your Cell as you need.
- (CGSize)collectionView:(UICollectionView *)collectionView 
                          layout:(UICollectionViewLayout*)collectionViewLayout 
          sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
7