0

我正在尝试创建一个应用程序,其中电影在 NSViews 中播放,可能会移到其他视图后面。我想使用 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 属性的影响。

我在这里犯了一个天真的错误吗 - 我似乎按照建议做所有事情。

谢谢!

4

1 回答 1

1

在使用重叠的支持层的视图和非支持层的视图的组合时,您可能会感到有些陌生。我会尝试制作另外两个支持图层的视图。

于 2013-06-20T10:20:42.297 回答