我有一个简单的自定义NSView,它有一个标签和一个图像。目前视图效果很好(所有拇指都是我自定义视图的实例):
但是,我想设置这些缩略图的不透明度。由于viewInstance.layer.opacity
为layer
,因此设置nil
不起作用。当我首先在某处使用[viewInstance setWantsLayer:YES]
并设置不透明度时,文本的不透明度会发生变化(正确显示),但图像视图会完全消失:
我尝试先创建一个图层,然后分配它,然后在阅读完这个问题后调用setWantsLayer:
:How to add a CALayer to an NSView on Mac OS X但没有任何改变:
CALayer *selfLayer = [[CALayer alloc] init];
[selfLayer setFrame:CGRectMake(0, 0, 100, 100)];
[self setLayer:selfLayer];
[self setWantsLayer:YES];
我已尝试过创建图层并将其显示在图片视图中的所有组合(只需调用setWantsLayer:
,创建图层然后分配它,调用它的display
方法),但仍然没有变化:
[self addSubview:self.imageView];
CALayer *imageLayer = [[CALayer alloc] init];
[imageLayer setFrame:CGRectMake(0, 0, 100, 100)];
[self.imageView setLayer:imageLayer];
[self.imageView setWantsLayer:YES];
我尝试将图片视图的图层添加为主视图的子图层,然后显示它:
[self.layer addSublayer:self.imageView.layer];
[self.imageView.layer display];
[self.layer display];
但是,图像不会显示,而文本总是正确显示。当我注释掉有关分配和想要图层的代码时,图像会再次显示,但很明显,我无法使用图层不透明度。我在OS X Mavericks上使用OS X SDK 10.8。我做错了什么?
更新:我最终完全摆脱NSImageView
并通过设置图层的NSImage
属性将contents
直接绘制到图层中。但是,这只是解决我这个项目问题的另一种方法,它仍然没有回答原来的问题。
答案 0 :(得分:1)
我最终完全摆脱了NSImageView
,并通过设置图层的NSImage
属性将contents
直接绘制到图层中。但是,这只是解决该项目我的问题的另一种方法,它仍然不能回答原始问题。