Ich arbeite an einem Cocoa-Projekt mit Core Animation und ich habe eine benutzerdefinierte Ansicht, die in zwei Fenstern angezeigt wird. Es erscheint immer in einem Fenster, aber manchmal erscheint es nicht im anderen Fenster, wenn ich die Anwendung starte. Soweit ich das beurteilen kann, ist es völlig zufällig. Hier ist der Code, den ich aufruft, wenn die Ansicht initialisiert wird. Es kommt zu diesem Code, ob die Ansicht angezeigt wird oder nicht.Core Animation-Ansicht wird manchmal nicht angezeigt
[self setWantsLayer:YES];
root = [self layer]; // root is a CALayer
root.layoutManager = [CAConstraintLayoutManager layoutManager];
root.autoresizingMask = kCALayerWidthSizable | kCALayerHeightSizable;
[root setBackgroundColor:CGColorGetConstantColor(kCGColorBlack)];
[self setNeedsDisplay:YES];
Warum sollte die Ansicht manchmal angezeigt werden und andere nicht?
BEARBEITEN: Würde es einen Unterschied machen, wenn ich den root CALayer selbst erstellen würde, anstatt ihn auf die "Ebene" der Ansicht zu setzen, wie ich es gerade tue?
Es gibt zwei Instanzen derselben benutzerdefinierten (untergeordneten) Ansicht, eine in jedem Fenster. Sie wurden erstellt, indem Sie eine benutzerdefinierte Ansicht in das Fenster in Interface Builder ziehen und dann die benutzerdefinierte Klasse für jede festlegen. – Austin