2017-04-10 3 views
-1

Ich versuche eine Sammlungsansicht auf einer Seite mit zwei Abschnitten zu erstellen. Ich möchte, dass die Zellen des Abschnitts 1 gelb und die Zellen des Abschnitts 2 blau gefärbt sind.Collectionview Kein Padding auf Zellenetikett

Ich habe es geschafft, die Kollektion Zellen zu erhalten, zeigen sich - aber die Zellen zwischen ihnen keine Polsterung haben nicht angezeigt werden - und wo die Hintergrundfarbe endet. Wie füge ich mehr farbige Polsterung um die Zellen hinzu, um sie aufgeräumter aussehen zu lassen? (Idealerweise mit Interface Builder) Screenshot: Collectionview no padding

Edit: Nach der Zugabe von Edge-Einschübe zu meinen benutzerdefinierten Zelle - es bringt mich näher an, was ich bin nach aber scheint den Text zu kürzen - und entfernen Sie meine abgerundeten Ecken:

Code:

override func drawText(in rect: CGRect) { 
    let insets = UIEdgeInsets.init(top: 5, left: 5, bottom: 5, right: 5) 
     super.drawText(in: UIEdgeInsetsInsetRect(rect, insets)) 
    } 

Insets

gibt es eine Möglichkeit UICollectionViewFlowLayoutAutomaticSize zu bekommen zu berücksichtigen die zusätzlichen 10 w Breite und behalten Sie die abgerundeten Ecken (bei Verwendung von Einsätzen)?

Antwort

0

Sie können eine UIView zuerst auf Ihr Handy nutzen, indem seine Beschränkungen festlegen und dann Ihre Etiketten in dieser Ansicht hinzuzufügen.

zuletzt entsprechende Farbe zu Zelle, UIView geben, Etikett nach Ihrer Wahl.

+0

Danke - aber ein Blick um die Zelle Hinzufügen - lassen Sie mich nicht selbst mehr Polsterung innerhalb der Zelle hinzuzufügen. (Siehe Screenshot oben) –

+0

Sie setzen können UIView Einschränkungen mit dem Wunsch constraintsConstant Zelle (dh vorangestellter, oben und unten bis 5 zum Beispiel) –

+1

dies zu mehr Farbe Polsterung führen wird, aber jetzt habe ich wissen, dass Sie einfach Spacing wollen zwischen den Zellen –

2

Wenn Sie UICollectionViewFlowLayout verwenden, können Sie den Zeilenabstand und den Objektabstand im Interface Builder anpassen, indem Sie die Eigenschaften Ihrer Layoutinstanz festlegen.

können Sie Layout-Instanz finden rechts unten/in Ihrer UICollectionView Instanz in linken Bereich des Interface Builder.

  1. Open Interface Builder
  2. Finden UICollectionViewFlowLayout Objekt innerhalb UICollectionView
  3. Wählen Size Inspector Registerkarte in rechten Bereich
  4. ändern Min Spacing

Hinweis: Das wird etwas Raum zwischen den Zellen verlassen. Wenn Sie Inhaltseinfügungen Ihrer Zellen oder Beschriftungen ändern möchten, sollten Sie benutzerdefinierte Zellen verwenden. Zum Inhalt Einsätze auf Ihre UILabel s hinzufügen, können Sie einen Blick auf this question haben und/oder that question

+0

dank so viel @ Mert- tatsächlich der letzte Punkt ist, was ich bin After wie finde ich den Inhalt Einsätze ändern, wenn ich eine benutzerdefinierte Zelle bereits haben (was ich habe) –

+0

dann Ihre Frage wird „, wie contentInsets zu UILabel hinzufügen ? ". Es gibt bereits viele Fragen dazu in SO, ich fügte zwei von ihnen zur Antwort hinzu. hoffe, dass hilft –

+0

Danke Mert - Ich habe die erste Lösung ausprobiert - und es scheint alles zu kürzen) (habe das oben zu der Frage hinzugefügt), so dass Sie den Ausgang sehen können - ich denke, ich muss mehr Arbeit mit der Überbrückung der intrinsischen tun Inhaltsgröße.Dies scheint eine Menge Arbeit für einen einfachen, häufigen Anwendungsfall zu sein. Hoffe ich verpasse gerade etwas. –

Verwandte Themen