gpt4 book ai didi

macos - 当父 NSView 想要图层时 NSImageView 消失(setWantsLayer :YES)

转载 作者:行者123 更新时间:2023-12-03 16:11:58 24 4
gpt4 key购买 nike

我有一个简单的自定义 NSView,它有一个标签和一个图像。目前该 View 工作得很好(所有拇指都是我的自定义 View 的实例):

enter image description here

但是,我想设置这些缩略图的不透明度。设置 viewInstance.layer.opacity 不起作用,因为 layernil。当我首先在某处使用 [viewInstance setWantsLayer:YES] 并设置不透明度时,文本的不透明度发生变化(它显示正确),但 ImageView 完全消失:

enter image description here

我尝试先创建一个图层,分配它,然后在阅读此问题后调用 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];

我已经尝试了创建图层并为 ImageView 显示它的所有组合(只需调用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];

我尝试将 ImageView 的图层添加为主视图的子图层,然后显示它:

[self.layer addSublayer:self.imageView.layer];
[self.imageView.layer display];
[self.layer display];

但是图像仍然无法显示,而文本总是正确显示。当我注释掉有关分配和想要图层的代码时,图像再次显示,但显然,我无法使用图层不透明度。我使用 OS X Mavericks 和 OS X SDK 10.8。我做错了什么?

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

最佳答案

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

关于macos - 当父 NSView 想要图层时 NSImageView 消失(setWantsLayer :YES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com