2013-01-07 13 views
6

Ich habe ein sehr einfaches Beispiel einer App (Quellcode auf github) mit einem UICollectionView gebaut.Warum kümmert sich AutoLayout nicht um meine UICollectionView

Alles funktioniert gut, solange die App im Hochformat ist. Wenn es jedoch in Querformat geändert wird, wird die Inhaltszelle nicht in der richtigen Größe geändert und daher wird nichts angezeigt.

Ich dachte, dass alle notwendigen AutoLayout-Einschränkungen vorhanden sind. Ich bin mir bewusst, dass ich collectionView:layout:sizeForItemAtIndexPath: implementieren kann, aber mein Ziel ist es, AutoLayout so viel wie möglich zu verwenden (einfach AutoLayout besser zu verstehen).

Was fehlt mir hier?

Antwort

9

Sie können die Position und Größe der Sammlungsansicht über das automatische Layout festlegen. Außerdem können Sie mithilfe von automatischem Layout die Position und Größe der Unteransichten in jeder Zelle festlegen. Sie können jedoch nicht die automatische Anordnung verwenden, um die Position und Größe der Zellen zu steuern. Sie müssen das Layoutobjekt der Sammlungsansicht verwenden, um die Position und Größe jeder Sammlungsansichtszelle festzulegen. Wenn die Größe der Zellen geändert werden soll, wenn sich die Schnittstellenausrichtung ändert, müssen Sie Ihr Layoutobjekt aktualisieren, um die neue Größe zu melden und das Layout ungültig zu machen.

+2

Ab iOS 8 ist es möglich, Zellen selbst zu vergrößern. Das Layout erstellt bei Bedarf eine Instanz Ihrer Zelle, und Sie können entweder auto- matische Begrenzungen oder override sizeThatFits: verwenden. Für das Layout muss die Eigenschaft "describedItemSize" festgelegt sein. – fatuhoku

Verwandte Themen