2008-12-09 10 views

Antwort

28

Eine Schicht-unterstützte Ansicht enthält Cocoa oder Cocoa Touch UI-Steuerelemente und kann mit dem Animator-Proxy animiert werden. Layer-Backed-Ansichten ermöglichen es Ihnen, Ihre Benutzeroberfläche zu animieren und den Overhead des Zeichnens zu reduzieren, indem Sie den Inhalt der Ansichten auf einer Core-Animationsebene zwischenspeichern. Erstellen Sie eine Layer-backed Ansicht durch die Bedürfnisse Schicht-Eigenschaft:

NSView *layerBacked = [NSView new]; 
[layerBacked setWantsLayer:YES]; 

Eine Schicht Hosting-Ansicht stellt eine Schicht für die direkte Manipulation durch einen NSView oder UIView gehostet. Layer-Hosting-Ansichten können zum Einbetten von Core Animation Zeichnen und Animation verwendet werden, überall können Sie eine NSView setzen:

NSView *layerHosting = [NSView new]; 
[layerHosting setLayer:[[CALayer new] autorelease]]; 
[layerHosting setWantsLayer:YES]; 
+6

Beachten Sie auch, dass in Cocoa Touch alle UIView der Ebene standardmäßig gesichert sind –

+4

Sie verfehlten „[layerHosting setWantsLayer: YES]; ". Apple sagt klar, dass man dies auch für Layer-Hosting-Aufrufe aufrufen muss, allerdings erst nach dem Setzen einer Ebene. Siehe NSView-Dokumentation. Ich habe deine Antwort entsprechend korrigiert. – Mecki

+2

Ich fand [dies] (http://www.cocoabuilder.com/archive/cocoa/299905-nsview-calayer-setneeddisplay.html) und [dies] (http://www.cocoabuilder.com/archive/cocoa/ 304625-Verständnis-Layer-Backed-Views.html) Diskussionen sehr hilfreich. – JJD