creé una aplicación Cocoa vacío en Xcode para OS X, y ha añadido:¿Cómo hacer que NSView no recorta su área de delimitación?
- (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];
}
Pero el fondo de la capa girada se recorta por el área de delimitación de la vista:
pensé, ya que algunos versión de OS X e iOS, la vista no recortará el contenido de sus subvistas y mostrará todo dentro y fuera? En iOS, veo ese comportamiento, pero me pregunto por qué aparece así y cómo hacer que todo se muestre. (Ya estoy usando el Xcode 4.4.1 más reciente en Mountain Lion).
(nota: si se intenta el código anterior, tendrá que enlazar a cuarzo Core, y posiblemente importar la cabecera principal de cuarzo, aunque me pregunto por qué no me importo la cabecera y todavía compila perfectamente)
Soy un desarrollador de iOS y recientemente han comenzado a trabajar en el cacao. Esto me ha estado volviendo loco durante los últimos tres días. Me sorprende que no pueda encontrar más información al respecto. ¡Gracias por publicar tu solución! – KevinM
Puede haber problemas al mezclar NSView con capas y capas sin capas. No es estable qué contenido se superpondrá a los demás. – Slavik
La configuración 'self.wantsLayer = YES' no funciona en' init' porque 1. el inicializador correcto es 'initWithFrame:' y 2. incluso esto no se llama para las vistas cargadas desde los nibs. Debería anular '-wakeFromNib' y realizar su configuración allí. Alternativamente, puede establecer la propiedad Capa de animación principal en el inspector de efectos de vista de IB. –