2016-03-01 4 views
5

Ich plane eine Ansicht, die mehrere Hunderte von CALayer Objekte innerhalb und nebeneinander enthalten könnte. Daher muss dies so performant wie möglich sein. Diese Schichten sind nicht sehr komplex. Sie sind undurchsichtig und können Text- oder Formebenen sein. Diese Menge an Schichten muss layouted werden. Ich würde dafür CAConstraints verwenden.CALayer vs. Layer-backed NSView Leistung

Von Apples Docs:

Wichtig: In OS X v10.8 und später, ist es empfehlenswert, dass Sie Ihre Verwendung von Schicht Hierarchien zu minimieren und verwenden nur Schicht-backed Ansichten. Mit den in dieser Version von OS X eingeführten Layer-Neuzeichnungsrichtlinien können Sie das Verhalten Ihrer Layer-Backed-Ansichten anpassen und trotzdem die Leistung erzielen, die Sie zuvor mit eigenständigen Layern erzielt haben.

Ich weiß, dass CALayer Objekte sind leichter als Ansichten. Ich bin mir nicht sicher, warum sollten wir Layer-Backed-Ansichten anstelle von Schichten direkt verwenden. Ist es für die Benutzerfreundlichkeit mit Auto Layout oder gibt es mehr Leistung/Speicher Gründe für diese Aussage? Ich möchte die bestmögliche Leistung erzielen, da dieser Code sowohl unter OS X als auch unter iOS ausgeführt wird.

Wohin soll ich gehen? Auto Layout und Layer-Backed NSViews oder benutzerdefinierte CALayer Hierarchie?

+1

CAConstraints sind unter iOS nicht verfügbar. Klingt, als würden sie sagen, Layer-Backed-Views seien flexibler, könnten aber die gleiche Performance erzielen. – beyowulf

+0

Ich hätte nach der Verfügbarkeit von CAConstraints gesucht. Danke! – mangerlahn

Antwort

0

Ich entschied mich für Layer-Backed-Ansichten. Die Leistung ist bisher sehr gut. Die Ansichten werden alle von stackViews ausgelegt.