Voreinstellungen,
Ich habe collectionViewFlowLayout Unterklasse mit
%Vor%CollectionView drehen Sie auf den Kopf, scrollen Sie mit
%Vor%Aber auch wenn ius native collectionViewFlowLayout ohne Subclassing verwendet, git diesen Fehler
Problem
Ich habe zwei Nachrichten und mehr im Chat, aber wenn unten scrollen (oben normal) verschwinden zweite Element.
layoutAttributesForElementsInRect gibt für das angegebene rect zwei Attribute für zwei indexPfads 0-0 und 0-1 zurück, aber delegieren Sie die Methode
%Vor%wurde nur für indexPath 0-0
aufgerufenHier Bilder
UPDATE So fand ich, warum es passiert - dieser Zeilencode
%Vor%Schauen Sie, wenn Sie die Transformation entfernen
Entschuldigung, alles, aber ich fand Grund und arbeite herum.
Dies geschieht nur auf dem Gerät, nicht im Simulator
Sehen Sie sich drei CGRects an
iPhone 5S
%Vor%iPhone 5C
(CGRect) oldFrame = (Ursprung = (x = 0, y = 0), Größe = (Breite = 320, Höhe = 314))
Simulator Intel Core
%Vor%Für alle von ihnen verwende ich eine Rotationstransformation über
%Vor%Zuerst ist es auf iPhone 5S ARM Apple A7 CPU
Zweitens ist es auf iPhone 5C ARM Apple A6 CPU
Drittens ist es auf Simulator bei Intel Core iX-Prozessor.
Also, meine Arbeit ist:
%Vor%Ich bin mir nicht ganz sicher, aber ich denke, wenn Sie das UICollectionViewFlowLayout ableiten, sollten Sie die Attribute nicht direkt ändern, sondern eine Kopie der Attribute erstellen, sie stattdessen ändern und zurückgeben.
>Kurze Erklärung der obersten Aussage: Sie müssen das UICollectionViewFlowDelegate (das übergeordnete Element von UICollectionViewDelegateFlowLayout) ableiten und dann Ihre eigenen Attribute erstellen und diese nach Belieben ändern. Dazu müssen Sie jedoch viel mehr benutzerdefinierte Logik implementieren.
Sehen Sie auch nach, wenn Sie Fehler oder Warnungen in der Konsole erhalten.
Sehen Sie sich diese Frage an: Warnung: UICollectionViewFlowLayout hat einen nicht übereinstimmenden Frame für den Indexpfad 'abc'
Ich hoffe, dass ich wenigstens ein bisschen hilfreich war.