Frage

Ich frage mich, was der beste Weg ist, in Bezug auf Geschwindigkeit und Effizienz, einen Rahmen um ein Bild auf dem iPhone zu ziehen, vor allem, wenn ich habe viele diese Bilder zeichnen:

1) Zeichnen Sie das Bild und dann den Rahmen um oder 2) Zeichnen eines rect, es mit einer Farbe füllen und dann das Bild zeichnen innerhalb dieser rect etwas versetzt Pixel verlassen den Rahmen zu imitieren

Hat Quartz alles zeichnen, die es erzählt wird, oder ist es klug genug, nur zu zeichnen, was wirklich zu sehen ist? Mein Gefühl ist, dass der erste Ansatz besser ist, weil es tatsächlich weniger Zeichnung getan ist. Ist es wirklich so?

Danke P.

War es hilfreich?

Lösung

Quartz Zeichnung erfolgt nur innerhalb der Grenzen der Ansicht, wenn Sie benutzerdefinierte tun in -drawRect Zeichnung:.

Das heißt, denke ich, dass Sie die beste Leistung sehen, wenn Sie einfach UIImageViews für jedes Bild erstellen, verwenden Sie dann den borderWidth, borderColor und möglicherweise cornerRadius Eigenschaften auf Ihrer Ansicht der Schicht, die eine Grenze zu setzen. Zum Beispiel:

imageView.layer.cornerRadius = 10.0f;
imageView.layer.borderWidth = 3.0f;
imageView.layer.borderColor = [[UIColor blackColor] CGColor];

findet einen 3-Pixel breiten schwarzen Rand um Ihre Ansicht, und gibt ihm einen 10 Pixel Radius an den Ecken.

Andere Tipps

Wenn die Leistung ist ein Problem, sollten Sie versuchen, die Anzahl der Operationen zu minimieren Sie auf dem Grafikkontext durchführen, vor allem denjenigen, die keine sichtbaren Komponenten haben.

In Ihrem speziellen Fall, ich glaube, Sie beiden Optionen auf einem iPhone (ist gen wenn möglich) testen müssen und Benchmark sie. Vielleicht ist es einfacher, nur das gesamte Rechteck zu füllen, anstatt zu berechnen, welche Pixel Teil des Rahmens sind und welche nicht?

Es hängt von dem Grafikchip.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top