2017-05-17 2 views
1

Je travaille sur un UICollectionView pour afficher la liste des éléments en mode Portrait comme indiqué dans la capture d'écran ci-dessous et implémenté en utilisant UICollectionViewController.UICollectionView - redesign en mode paysage

enter image description here

Maintenant, je veux re-conception même chose en mode Landscape comme le montre ci-dessous capture d'écran.

enter image description here

Comment puis-je obtenir une telle conception en utilisant UICollectionView et UICollectionViewFlowLayout en Landscape mode en réutilisant même base de code de portrait? C'est possible? Pouvez-vous s'il vous plaît me conseiller?

Merci d'avance.

+0

je pense en utilisant 'UISplitViewController' est meilleur pour ce type d'affichage, en mode paysage u peut montrer à la fois maître et détail, portrait vous pouvez montrer seulement l'écran de détail. –

+1

dans le paysage, à gauche (cellule1 et en-tête) et à droite (cellule2 cellule3 cellule4) les deux sont scrollable ?? –

+0

@elk_cloner, Merci pour votre réponse. Pas les deux. En mode paysage, seules les cellules cell2 cell3 cell4 sont défilantes. –

Répondre

1

Vous pouvez également faire en utilisant stackview. Créez une stackview avec deux vues puis changez l'axe lorsque l'orientation change. Définissez les contraintes appropriées pour votre exigence.

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { 
    handleOrientationForLandscape(isLandscape: UIDevice.current.orientation.isLandscape) 
    } 
    func handleOrientationForLandscape(isLandscape: Bool) { 

    if isLandscape 
    { 
     containerStackview.axis = .horizontal 
     topViewWidthConstraint.constant = 700 

    }else 
    { 
     containerStackview.axis = .vertical 
     topViewWidthConstraint.constant = UIScreen.main.bounds.width 
    } 

    } 

s'il vous plaît vérifier https://github.com/karthikprabhuA/stackOverflowAnswer

enter image description here

enter image description here