Ho creato un cacao app vuoto Xcode per OS X, e ha aggiunto:Come rendere NSView non ritaglia l'area di delimitazione?
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.view = [[NSView alloc] initWithFrame:NSMakeRect(100, 100, 200, 200)];
self.view.wantsLayer = YES;
self.view.layer = [CALayer layer];
self.view.layer.backgroundColor = [[NSColor yellowColor] CGColor];
self.view.layer.anchorPoint = CGPointMake(0.5, 0.5);
self.view.layer.transform = CATransform3DMakeRotation(30 * M_PI/180, 1, 1, 1);
[self.window.contentView addSubview:self.view];
}
Ma sfondo del livello ruotata è ritagliato dalla della vista di delimitazione:
ho pensato dal momento che alcuni versione di OS X e iOS, la vista non ritaglia il contenuto delle sue sottoview e mostrerà tutto dentro e fuori? Su iOS, vedo questo comportamento, ma mi chiedo perché si presenti in questo modo e come mostrare tutto? (Sto già utilizzando Xcode 4.4.1 più recente su Mountain Lion).
(nota: se si cerca il codice di cui sopra, è necessario collegarsi al quarzo core, ed eventualmente importare l'intestazione di base di quarzo, anche se mi chiedo perché non ha importato l'intestazione e compila ancora perfettamente)
Sono uno sviluppatore iOS e ho da poco iniziato a lavorare in Cocoa. Questo mi ha fatto impazzire negli ultimi tre giorni. Sono sorpreso di non riuscire a trovare più informazioni a riguardo. Grazie per aver postato la tua soluzione !! – KevinM
Potrebbero esserci problemi quando si mescola NSView con i livelli e quelli senza livelli. Non è stabile ciò che il contenuto si sovrapporrà agli altri. – Slavik
L'impostazione 'self.wantsLayer = YES' non funziona in' init' perché 1. l'inizializzatore corretto è 'initWithFrame:' e 2. anche questo non viene chiamato per le viste caricate dai pennini. Dovresti sovrascrivere '-awakeFromNib' ed eseguire la configurazione lì. In alternativa, è possibile impostare la proprietà Layer dell'anima core nell'ispettore Effetti vista IB. –