Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c CALayer和view controller视图重叠间歇性问题_Objective C_Cocoa_Macos_Core Animation_Calayer - Fatal编程技术网

Objective c CALayer和view controller视图重叠间歇性问题

Objective c CALayer和view controller视图重叠间歇性问题,objective-c,cocoa,macos,core-animation,calayer,Objective C,Cocoa,Macos,Core Animation,Calayer,我有一个主窗口控制器,它是一个带有滚动视图(蓝色矩形)的NSWindowController(金色矩形),以及一个由NSViewController(黄色矩形)控制的子视图 根据用户选择,相应的nib文件将通过NSViewController加载到子视图中 不幸的是,由于设计限制,滚动视图将根据用户操作隐藏或取消隐藏。不幸的是,此滚动视图必须与视图重叠 其中一个视图也是qtmovielayer,因此我将层备份到主窗口控制器和所有元素。Layer backing设法使scrollview显示在qt

我有一个主窗口控制器,它是一个带有滚动视图(蓝色矩形)的NSWindowController(金色矩形),以及一个由NSViewController(黄色矩形)控制的子视图

根据用户选择,相应的nib文件将通过NSViewController加载到子视图中

不幸的是,由于设计限制,滚动视图将根据用户操作隐藏或取消隐藏。不幸的是,此滚动视图必须与视图重叠

其中一个视图也是qtmovielayer,因此我将层备份到主窗口控制器和所有元素。Layer backing设法使scrollview显示在qtmovielayer前面

当一切正常时,它看起来就像左边的图像。但是,当我启动应用程序时,有1/5次滚动视图出现在子视图后面,如右图所示。我已经试着寻找了一个半星期,想知道为什么会发生这样的事情,但我已经因为扯头发而秃顶了

我能在网上找到的唯一资源是设置z层的位置,但问题仍然存在

如果有人知道为什么会发生这种情况或如何解决,我们将不胜感激。

您希望将滚动视图(蓝色)作为子视图(黄色)的子视图。子视图始终显示在其父视图的“前面”。就像家庭照片一样,孩子们总是站在父母面前:)因此,在视图中使用addSubView方法通过将金色视图消息发送到addSubView来加载,而不仅仅是将蓝色视图添加到主视图中