2017-07-29 5 views
1

Je prends UICollectionView et définir le défilement horizontal. Maintenant, dans cette une vue de l'image est là, Tout fonctionne parfaitement sauf l'espacement des cellules. Dans collectionView, je définis l'espacement minimum pour les cellules 0 (zéro). Mais Spaces est toujours là.UICollection faire défiler horizontalement, donc réduire l'espace entre les éléments de la cellule

Ma sortie est comme ça .. enter image description here

Mais je besoin de ce type de sortie ..

enter image description here

Et une chose est que je parle tant de réponse, mais encore aucune idée Que faire. J'utilise Xcode 7.0 donc j'ai besoin d'une solution dans swift 2.0 et si possible, je demande aussi de donner une réponse dans swift 3.0. S'il vous plaît aidez-moi. Merci d'avance.

+0

Avez-vous essayé avec code? vérifiez ceci: https://stackoverflow.com/questions/28325277/how-to-set-cell-spacing-and-uicollectionview-uicollectionviewflowout-size-r –

+0

func collectionView (collectionView: UICollectionView, disposition collectionViewLayout: UICollectionViewLayout, section minimumInteritemSpacingForSectionAtIndex: Int) -> CGFloat { return 0 } func CollectionView (CollectionView: UICollectionView, mise en page collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { retour CGSize (largeur: 155, hauteur: 155) } I aussi mettre cette méthode de UICollectionViewDelegateFlowLayout mais ne fonctionne toujours pas .. – NiravS

+0

êtes-vous sûr que deleagte sont appelés ?? –

Répondre

3

essayer cette

Ne pas oublier de mettre délégué CollectionView de FlowLayout

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
      return CGSize(width: collectionViewTable.bounds.size.width/2 - 20, height: 160) 

     } 

func collectionView(_ collectionView: UICollectionView, 
         layout collectionViewLayout: UICollectionViewLayout, 
         insetForSectionAt section: Int) -> UIEdgeInsets 
    { 
     return UIEdgeInsetsMake(5, 14, 5, 14) 
    } 
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat { 
     return 20; 
    } 

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat { 
     return 20; 
    } 
+0

modifiez les encarts et vérifiez qu'il fonctionnera –

+0

Ne donne pas la sortie correcte comme j'ai besoin .. – NiravS

+0

Je me réfère à tant de code mais tout à propos verticalement faire défiler. Mon défilement est horizontalement – NiravS

0

méthodes suivantes dans votre Add code et jusqu'à ce que votre sortie manipuler désir.

func collectionView(_ collectionView: UICollectionView, 
         layout collectionViewLayout: UICollectionViewLayout, 
         sizeForItemAt indexPath: IndexPath) -> CGSize { 
     return CGSize(width: CGFloat(collectionView.frame.size.width/ 2 - 5), height: CGFloat(135)) // 2 is indicates number of cell in row 
    } 

    func collectionView(_ collectionView: UICollectionView, 
         layout collectionViewLayout: UICollectionViewLayout, 
         insetForSectionAt section: Int) -> UIEdgeInsets{ 
     return UIEdgeInsetsMake(0, 0, 0, 0) 
    } 

    func collectionView(_ collectionView: UICollectionView, 
         layout collectionViewLayout: UICollectionViewLayout, 
         minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { 
     return 10.0 
    } 

    func collectionView(_ collectionView: UICollectionView, 
         layout collectionViewLayout: UICollectionViewLayout, 
         minimumLineSpacingForSectionAt section: Int) -> CGFloat { 
     return 10.0 
    } 
0

Mon code est tout bon. Mais je ne porte la eteint ce que je veux donc j'essayer de nouvelles choses qui donnent - valeur négative

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat { 
     return -20; 
    } 

Donc, seulement en utilisant cette méthode avec une valeur négative et je reçois ma sortie désirée. Merci à tous ceux qui tentent de résoudre ce bug pour moi ...

1

enter image description here

Vous pouvez définir des cellules et des lignes d'espacement de l'inspecteur de la taille.

Vous pouvez également définir UICollectionViewDelegateFlowLayout.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat