2016-04-24 4 views
-1

Hier ist mein Problem. Ich habe eine UICollectionViewCell mit einer Bildansicht. Das Bild wird von einem Link heruntergeladen. Die Bilder haben unterschiedliche Größen und ich möchte, dass sich die collectionView-Zellengröße mit der Bildgröße ändert. Ich erreichen derzeit dies durch Erzwingen des Layouts innerhalbWie erzwinge ich das Layout der Sammlung ohne Kompromisse bei der Leistung?

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)

durch diese Codezeile Platzierung darin

collectionViewTrending.reloadItemsAtIndexPaths([indexPath]) 

Die unten UICollectionViewDelegate Funktion

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) 

ist der Umgang mit der Änderung der Größe die Zelle. Obwohl das funktioniert, aber es ist definitiv nicht effizient. Dies ist ineffizient, da das Scrollen auf der collectionView länger dauert und nicht reibungslos ist. Gibt es eine Möglichkeit, die Größe der Zelle zu ändern, ohne die Leistung zu beeinträchtigen?

+0

'aber es ist definitiv nicht efficient.' Worin Weg? Was ist ineffizient? Was sind Ihre Leistungsanforderungen und wo haben Sie die aktuelle Leistung gemessen? – nhgrif

+0

Ich habe es nicht gemessen. Ich habe es auf meinem Handy getestet und ich sehe, dass das Scrollen von collectionView länger dauert und nicht reibungslos ist. Aus der Sicht eines Benutzers ist das ziemlich ärgerlich. – MrDank

+0

Sie müssen [Ihre Frage bearbeiten] (http://stackoverflow.com/posts/36826638/edit) und es aktualisieren, um eine Beschreibung des Verhaltens, das problematisch ist, sowie den tatsächlichen Code, der dieses Verhalten verursacht (was erfordert, zu messen). – nhgrif

Antwort

0

entfernen diese Linie - collectionViewTrending.reloadItemsAtIndexPaths ([indexPath]) zuerst .. Dann setzen sizeForItem Methode Collection properly..It wird gut funktionieren ..

Verwandte Themen