支持层的NSView会破坏视图层次结构吗?

时间:2013-06-19 17:06:54

标签: macos avfoundation calayer nsview

我正在尝试创建一个应用程序,在NSView中播放电影可能会移动到其他视图后面。我想使用AVFoundation,所以我将视频呈现给AVPlayerLayer。

但是,视频总是在其他所有内容上播放,这似乎是视图中图层的问题。

在视图create:

中考虑以下内容
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属性的影响。

我在这里犯了一个天真的错误 - 我似乎按照建议做了一切。

谢谢!

1 个答案:

答案 0 :(得分:1)

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