我在界面构建器/自动布局的帮助下设置了两个NSView(一个与view1重叠的工具栏),然后在 - (void)awakeFromNib中调用
[self.view1 setWantsLayer:YES];
[self.toolbar setWantsLayer:YES];
使视图层支持,以便稍后我可以为它们设置动画。我发现如果我在view1上调用它后调用setWantsLayer,它会在view1上显示,而不是关心界面构建器中的顺序。到目前为止,非常好。
我的问题是:如何在代码中更改视图的顺序。调用
self.toolbar.zPosition = 0;
self.view1.zPosition = 1;
没有做任何事情。因为我对CALayers不那么自信: 有什么我想念的吗? 还有一个很好的CALayers教程 - 我阅读了文档,但没有理解一切(层托管视图,子图层的概念......)
图像以便更好地理解(我想为绿色视图的透明度设置动画,使黑色工具栏位于红色视图上,绿色视图消失。然后返回绿色视图):
答案 0 :(得分:0)
您需要使用addSubview:positioned:relativeTo:
添加相对于第一个视图的第二个视图。图层索引仅相对于父图层中的图层,而不是其自身的视图图层。
例如,
[hostingView addSubview:topView
positioned:NSWindowAbove
relativeTo:bottomView];