Macos 分层视图是否会破坏视图层次结构?

Macos 分层视图是否会破坏视图层次结构?,macos,avfoundation,calayer,nsview,Macos,Avfoundation,Calayer,Nsview,我正在尝试创建一个应用程序,其中在NSView中播放的电影可能会落后于其他视图。我想使用AVFoundation,因此我将向AVPlayerLayer渲染视频 然而,视频总是放在其他一切之上,这似乎是视图中的层的问题 在创建视图时,请考虑以下事项: NSView *backView = [[NSImageView alloc] init]; NSImage *image = [[NSImage alloc] initWithContentsOfURL:[[NSBundle mainBundle]

我正在尝试创建一个应用程序,其中在NSView中播放的电影可能会落后于其他视图。我想使用AVFoundation,因此我将向AVPlayerLayer渲染视频

然而,视频总是放在其他一切之上,这似乎是视图中的层的问题

在创建视图时,请考虑以下事项:

NSView *backView = [[NSImageView alloc] init];
NSImage *image = [[NSImage alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"Background" withExtension:@"png"]];
[backView setImage:image];
[self addSubview:backView];

NSView *layerView = [[NSView alloc] initWithFrame:CGRectMake(0, 0, 100, 500)];
[layerView setWantsLayer:YES];
[layerView.layer setBackgroundColor:CGColorGetConstantColor(kCGColorWhite)];
[self addSubview:layerView];

NSView *frontView = [[NSImageView alloc] init];
image = [[NSImage alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"Foreground" withExtension:@"png"]];
[frontView setImage:image];
[self addSubview:frontView];
看看这个,你会得到一个白色的图层渲染在所有其他的上面。 除此之外,白色层不会受到父视图的alpha属性的影响

我是不是犯了一个幼稚的错误——我似乎在按照建议做每件事


谢谢大家!

在使用重叠的层备份视图和非层备份视图的组合时,您可能会感到有些奇怪。我会尝试创建其他两个图层背景视图。

在使用重叠图层背景视图和非图层背景视图的组合时,您可能会感到有些奇怪。你试过把另外两层做背面吗?谢谢你,盖格。这似乎确实奏效了。调整窗口大小时仍会弹出一些层,但总体而言,排序效果与预期一致。您想添加以上内容作为答案吗?很高兴听到。我补充了答案。谢谢