3

我有一个 NSView,我更改了一些属性,使它成为一个圆角矩形,颜色为灰色,并将其添加到我的视图中(在所有内容的后面)

float gray = 60.0f/255.0f;
NSView* background = [[NSView alloc] initWithFrame: self.iconContainer.frame];
CALayer *viewLayer = [CALayer layer];
[viewLayer setBackgroundColor:CGColorCreateGenericRGB(gray, gray,gray, 1)]; //RGB plus Alpha Channel
[viewLayer setCornerRadius:5.0f];
[background setWantsLayer:YES]; // view's backing store is using a Core Animation Layer
[background setLayer:viewLayer];  

// Place view behind all other views
[self.iconContainer addSubview:background positioned:NSWindowBelow relativeTo:nil];

然而,无论我尝试什么,这个特定的观点都高于其他一切。

4

1 回答 1

7

通常,这种行为是由在子视图上使用 Core Animation 层引起的,而父视图没有。

在 superview 上启用 Core Animation 层应该可以解决这个问题,因为任何子视图都将使用 Cora Animation 层绘制,从而使绘制过程尊重子视图的顺序。

于 2013-08-23T21:40:18.620 回答