2016-03-25 5 views
0

Wie kann ich programmgesteuert auf eine Storyboardset-Einschränkung für eine Prototypzelle für eine Sammlungsansicht zugreifen?Abrufeinschränkungen in der Sammlungsansichtszelle abrufen?

Ich arbeite innerhalb der UICollectionViewDelegateFlowLayout collectionView(_:layout:sizeForItemAtIndexPath:) Methode.

Collection cell setup, including constraints

Insbesondere möchte ich das Seitenverhältnis für die Bildansicht einrichten.

Die Zelle ist zu diesem Zeitpunkt noch nicht verfügbar, und die Einschränkung ist im Einschränkungsfeld der Sammlungsansicht nicht vorhanden. (Edit zur Klarstellung: Ich kann nicht auf den Inhalt der Zelle zugreifen, und da die Einschränkungen der Zelle zugeordnet sind, sind sie nicht in der Constraints Array der Sammlungsansicht vorhanden.)

Ich kann keinen Ausgang festlegen , da die Zelle Inhalt wiederholt.

Wie kann ich auf diese Einschränkung zugreifen, anstatt eine Zelle oder eine Layout-Unterklasse zu erstellen?

Ich verwende Xcode 7.3 mit Swift 2.2.

+0

"Ich möchte das Bildformat für die Bildansicht einrichten." Aber du weißt was es ist. Ich weiß was es ist. Es ist 16: 9. Ich sehe nicht, was das Problem ist. "Die Einschränkung ist im Beschränkungsarray der Sammlungsansicht nicht vorhanden." Nein, es befindet sich im Constraints-Array der Bildansicht. – matt

+0

Yah, @matt, aber wenn jemand kommt und diese Einschränkung ändert, wird es nicht mehr 16: 9 sein - und der Code wird es nicht wissen. – leanne

+0

Wer wäre dieser "Jemand"? Kein Benutzer kann auf das Storyboard zugreifen, und der Programmierer hat direkte Kenntnisse über seinen Inhalt. Ich sehe wirklich nicht, dass es hier ein Problem gibt. – matt

Antwort

0

Das sieht aus wie das gleiche Problem in dieser Frage festgelegt: Xcode 7 beta 5, Swift 2: UITableViewCell's subviews are not added to the contentView at runtime

Die Subviews des content sind nicht verfügbar, es sei denn programmatisch neben die Anpassung des Storyboard hinzugefügt. Dieses Problem besteht auch bei einer benutzerdefinierten Zellklasse.

Die Lösung in dieser Frage (um sicherzustellen, dass alles als installiert im Storyboard installiert ist) funktionierte nicht für mich, also werde ich zumindest für den Moment ein hartcodiertes Seitenverhältnis verwenden.