我正在尝试将多个 CALayer 添加到 NSView,但显示时我的视图仍然为空:
这是我的代码:
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.layer = [CALayer layer];
self.wantsLayer = YES;
CALayer *newLayer = [CALayer layer];
NSImage *image = [NSImage imageNamed:@"page.png"];
newLayer.backgroundColor = [NSColor redColor].CGColor;
newLayer.contents = (id)[image CGImageForProposedRect:NULL context:NULL hints:nil];
newLayer.frame = NSMakeRect(100,100,100,100);//NSMakeRect(0,0,image.size.width,image.size.height);
newLayer.position = CGPointMake(20,20);
[self.layer addSublayer:newLayer];
}
return self;
}
有任何想法(或代码示例)来执行此任务吗?
感谢致敬,
设置图层的代码需要位于 awakeFromNib 方法中,而不是 initWithFrame 函数中。
解释一下原因:)
在 nib 文件中,您的视图被标记为不需要图层,因此流程是
- 您在 initWithFrame: 方法中设置图层
- nib 文件属性设置为清除图层。
您还可以保留代码不变,并告诉界面构建器您的自定义视图需要一个层。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)