2017-07-17 9 views
0

Ich versuche eine Sammlungsansicht zu erstellen (Xcode 8, Swift 3), die zwei Zellen pro Zeile zeigt. Jede Zelle in der Sammlung Ansicht hat (von oben nach unten):Bild in der Sammlungsansicht wird beim Scrollen größer

  • Ein Image
  • A Titel Label
  • A Untertitel Label

Ich habe die Zelle in Storyboard setzen sich wie folgt zusammen:

  • Zellengröße: 250 x 258
  • Image an die enthalten gepinnt er-Zelle (0 oben, 0 vorangestellt und 0 nachlaufend) an die Titelbeschriftung angeheftet (10 unten)
  • Title-Label an die Containerzelle angeheftet (12 führende, 12 nachlaufende) und zum Untertiteletikett (-0,5 unten)
  • Untertitel Etikett an der Behälterzelle verstiftet (12 führenden, 12 nachlauf, 0 unten)
  • insets Abschnitt 10 ringsum
  • Min Abstand 10 für Linien

dann in meinem Controllers viewDidLoad ich die folgenden:

let width = collectionView!.frame.width/2 
let layout = collectionViewLayout as! UICollectionViewFlowLayout 
layout.itemSize = CGSize(width: width - 15, height: width - 4) 

Wenn ich die App starte, sieht anscheinend alles gut aus. Wenn ich jedoch auf und ab blättern oder zu einem anderen Tab wechseln und zurückkehren werde, erscheinen einige der Bilder größer als sie sollten (die Zelle bleibt für jedes Element gleich groß, aber das Bild ist größer und schiebt das Etikett darunter).

Ich gehe davon aus, dass dies ein Problem mit dem automatischen Layout ist, aber ich bin mir nicht sicher, wie man es so macht, dass die Sammlung zeigt zwei Zellen pro Zeile, während das Bild in den Zellen im gleichen Verhältnis (Bilder sind rechteckig 250) x 197). Ich kann keine festen Werte für Breite und Höhe für das Bild festlegen, da ich es abhängig von der Bildschirmgröße proportional skalieren muss.

Ich habe online nach Lösungen gesucht, aber die meisten Tutorials zur Sammlungssicht arbeiten mit quadratischen Bildern, bei denen der gleiche Wert für Breite und Höhe eingestellt ist, damit die Proportionen in rechteckigen Bildern nicht beibehalten werden.

+0

Haben Sie in der Bildansicht" Clips an Grenzen "angekreuzt? – Fogmeister

+0

Ja, leider löst das nicht. Auch passiert es zufällig und alle Bilder haben die gleiche Größe. – cesarcarlos

+0

Da Sie die Breite und Höhe nicht statisch einstellen möchten, können Sie das Seitenverhältnis auf "1: 27" einstellen, um Ihre Bilder auf dem gleichen Wert wie 250x197 zu halten. –

Antwort

0

Nur damit die Frage beantwortet markiert werden können! :)

„Da Sie nicht die Breite und Höhe statisch einstellen wollen, können Sie es Seitenverhältnis einstellen könnte 1:27, um Ihre Bilder gleichzeitig zu halten Aspekt als 250x197 "

Verwandte Themen