Einstellung Eckenradius auf eine Zelle tötet UICollectionView Leistung

Ich habe eine UICollectionView hat, dass nur wenige Zellen (etwa 20). Die Leistung für diese Sammlung funktioniert Super. Allerdings, sobald ich versuche, Runde die Ecken der UICollectionViewCells, die gerendert werden von dieser Sicht, meine Leistungsfähigkeit nimmt einen bedeutenden Treffer. In meiner Zelle ist die init-Methode, dies ist die einzige Linie, die ich hinzufügen Ursache:

[self.layer setCornerRadius:15];

Da dies in der init-Methode und ich bin der Wiederverwendung der Zellen richtig, ich verstehe nicht, warum das sein sollte, was mich Problem.

Ich habe versucht, die Anpassung der Rasterung und die Deckkraft der verkaufen mit mehreren Kombinationen der folgenden, mit der noch keine Wirkung:

[self.layer setMasksToBounds:YES];
[self.layer setCornerRadius:15];
[self.layer setRasterizationScale:[[UIScreen mainScreen] scale]];
self.layer.shouldRasterize = YES;
self.layer.opaque = YES;

Ist Ihr irgendeine Einstellung oder trick zur Verbesserung der Leistung von einem UICollectionView hat, dass Zellen mit abgerundeten Ecken?

  • Verwenden Sie vorab gerenderte Bilder statt für den gleichen Effekt-wenn möglich - corner-radius als auch die Schatten sind ziemlich teuer, wenn Sie fertig über diese layer-Eigenschaften.
  • Auch die Zelle wiederverwenden hilft nicht, umsetzen Ecke Rundung iOS wurde neu berechnet, was beschnitten werden soll bei jedem frame, während die Zelle bewegen, wenn sich etwas ändert. Nicht so schlimm, wie Schatten, obwohl.
  • Ich hatte gedacht, das auszuprobieren, aber ich habe versucht, es zu vermeiden, da meine Zellen haben variable text. Auch nicht die Eigenschaft shouldRasterize=JA, ein image zu erstellen, der die Schicht vor dem Rendern es?
InformationsquelleAutor lehn0058 | 2012-12-20
Schreibe einen Kommentar