2017-08-28 3 views
0

here is some snap of it i mit diesem Code versucht, aber es funktioniert nicht:ich will zwei Zelle in uicollectionview in einer Reihe zeigen, in alle iPhone-Modell

meine collecionview Zelle:

Größe ist: 166: 32 Min Abstand : 10: 10

Abschnitt Einsätze: 20: 20

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt 
     indexPath: IndexPath) -> CGSize 
    { 
     if collectionView == MainCollectionView 
     { 
      let padding : CGFloat = 50 
      let collectionViewSize = MainCollectionView.frame.size.width - padding 

      return CGSize(width: collectionViewSize/2, height: collectionViewSize/2) 

     } 
     return CGSize(width: 0, height: 0) 
    } 
+0

Sie können zwei Zellen in einem Abschnitt verwenden. –

Antwort

0

Verwenden UICollectionViewDelegateFlowLayout Ihrer Ansicht und rufen Sie die delegierte Methode

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    let width = self.view.frame.width 
    return CGSize(width: (width)/2, height: (width)/2) // width & height are the same to make a square cell 
} 
+0

es funktioniert nicht, ist es anders? – user8198079

+0

haben Sie Sammlungsdelegat von selbst gesetzt – AbhiRaz

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

    let width = (collectionView.frame.width/2)-0.5 
    return CGSize(width:width , height: width) 

} 
+0

es funktioniert nicht .. – user8198079

+0

in welche Richtung ist die Schriftrolle –

+0

Richtung der Schriftrolle ist vertikal – user8198079

0

Versuchen Sie diese UICollectionViewDelegateFlowLayoutdelegate methods Umsetzung das gewünschte Ergebnis zu erzielen:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize 
{ 
    return CGSize(width: (collectionView.bounds.width - 10 - 20*2)/2, height: collectionView.bounds.height) 
    //In collectionView.bounds.width - 10 - 20*2 : 
    //10 for cell spacing and 
    //20*2 for section insets on left and right 
} 

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

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets 
{ 
    return UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20) 
} 

deutlicher Ihre Anforderungen angeben, so dass ich Ihnen weiter helfen können.

+0

es funktioniert nicht ist es anders? – user8198079

+0

Was funktioniert nicht? Zeigen Sie die Ausgabe, die Sie erhalten und was Sie erreichen möchten. – PGDev

+0

Ich möchte zwei Zellen in einer Zeile in uicolectionview arrangieren. – user8198079

0

Ihr Code ist perfekt, aber die Delegate-Methode, die Sie verwenden, wird möglicherweise nicht aufgerufen. Versuchen Sie, basierend auf der von Ihnen verwendeten schnellen Syntaxversion, die neueste Delegate-Methode. Stellen Sie außerdem sicher, dass Ihre Sammlung den Beobachter dieses Delegierten angezeigt hat, indem Sie es selbst machen.

+0

Ich habe nur Probleme mit 5s ADN unter ihm Telefon. gemäß mir verwende ich aktualisierte Syntax, wenn Sie einen Vorschlag haben, bitte helfen Sie mir. – user8198079

+0

Problem ist gerätespezifisch oder iOS-versionsspezifisch? –

Verwandte Themen