5

我有一个简单的自定义 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 SDK 10.8 的 OS X Mavericks 上。我究竟做错了什么?

更新:我最终完全摆脱并通过设置图层的属性直接将其NSImageView绘制到图层中。然而,这只是解决我这个项目问题的另一种方法,它仍然没有回答原来的问题。NSImagecontents

4

1 回答 1

1

我最终完全摆脱了并通过设置图层的属性将NSImageView其直接绘制到图层中。然而,这只是解决我这个项目问题的另一种方法,它仍然没有回答原来的问题。NSImagecontents

于 2020-01-14T09:46:00.423 回答