Macos 核心动画--不显示任何内容(OS X)
我正在尝试使用OS X中的核心动画绘制此平面: (但是没有黑色背景) 这是我的自定义NSView中的代码:Macos 核心动画--不显示任何内容(OS X),macos,cocoa,core-animation,nsview,quartz-core,Macos,Cocoa,Core Animation,Nsview,Quartz Core,我正在尝试使用OS X中的核心动画绘制此平面: (但是没有黑色背景) 这是我的自定义NSView中的代码: - (id)initWithFrame:(NSRect)frame { self = [super initWithFrame:frame]; if (self) { [self A_singlePlane]; } return self; } - (void)A_singlePlane{ CALayer *container = [CALayer laye
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self A_singlePlane];
}
return self;
}
- (void)A_singlePlane{
CALayer *container = [CALayer layer];
container.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self.layer addSublayer:container];
CALayer *purpleLayer = [self addPlaneToLayer:container size:CGSizeMake(100, 100) position:CGPointMake(100, 100) color:[NSColor purpleColor]];
CATransform3D t = CATransform3DIdentity;
t = CATransform3DRotate(t, 45.0f * M_PI / 180.f, 0, 1, 0);
purpleLayer.transform = t;
}
- (CALayer *)addPlaneToLayer:(CALayer* )container size:(CGSize)size position:(CGPoint)point color:(NSColor *)color{
CALayer *plane = [CALayer layer];
plane.backgroundColor = [color CGColor];
plane.opacity = 0.6;
plane.frame = CGRectMake(point.x, point.y, size.width, size.height);
plane.borderColor = [[NSColor colorWithWhite:1.0 alpha:0.5] CGColor];
plane.borderWidth = 3.0;
plane.cornerRadius = 10.0;
[container addSublayer:plane];
return plane;
}
我在interface builder中有一个视图,该类设置为我的自定义NSView类。我的自定义视图设置为具有图层。结果是一个空白窗口。我没有收到任何错误或警告
有人看到我的逻辑缺陷在哪里了吗?您的自定义视图层有备份吗?(
setWantsLayer=YES
)很有效,谢谢!但是我已经在Interface Builder中为我的视图选择了一个图层,那么为什么还要在代码中调用它呢?Interface Builder中的图层复选框是否与Objective-C中的图层复选框不同?