UICollectionViewFlowLayout macht das Recht zur Änderung der Ausrichtung nicht ungültig

Ich habe eine UICollectionView mit einem UICollectionViewFlowLayout. Ich implementiere auch das UICollectionViewDelegateFlowLayout-Protokoll.

In meiner Datenquelle habe ich eine Reihe von UIViewControllern, die auf ein benutzerdefiniertes Protokoll reagieren, sodass ich nach ihrer Größe und einigen anderen Informationen fragen kann.

Wenn der FlowLayout-Delegat nach sizeForItemAtIndexPath: fragt, gebe ich die Elementgröße zurück, die ich von meinem Protokoll erhalte. Die ViewController, die mein Protokoll implementieren, geben je nach Ausrichtung eine andere Elementgröße zurück.

Wenn ich nun die Ausrichtung des Geräts von Hochformat auf Querformat ändere, ist das kein Problem (die Elemente sind im Querformat größer), aber wenn ich sie zurück ändere, erhalte ich die folgende Warnung:

    the item width must be less that the width of the UICollectionView minus the section insets left and right values.
    Please check the values return by the delegate.

Es funktioniert immer noch, aber ich mag es nicht, Warnungen zu bekommen, also kannst du mir vielleicht sagen, was ich falsch mache. Es gibt auch ein anderes Problem. Wenn ich meiner collectionViews collectionViewLayout nicht sage, dass sie in willAnimateRotationToInterfaceOrientation ungültig werden soll, wird sizeForItemAtIndexPath: nie aufgerufen.

Ich hoffe du verstehst was ich meine. Wenn Sie zusätzliche Informationen benötigen, lassen Sie es mich wissen :)

Antworten auf die Frage(7)

Ihre Antwort auf die Frage