【问题标题】:CALayer and view controller views overlap intermittent problemsCALayer 和视图控制器视图重叠间歇性问题
【发布时间】:2011-01-20 02:19:21
【问题描述】:

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

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

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

其中一个视图也是一个 qtmovielayer,所以我有图层支持主窗口控制器和所有元素。图层支持设法让滚动视图出现在 qtmovielayer 前面。

当一切正常时,它看起来就像左边的图像。然而,当我启动应用程序的 1/5 次时,滚动视图出现在子视图的后面,如右图所示。我一直在尝试和寻找大约一个半星期的时间来了解为什么会发生这种情况,而且我会因为撕裂和拉扯我的头发而变得秃顶。

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

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

【问题讨论】:

    标签: objective-c cocoa macos core-animation calayer


    【解决方案1】:

    您想让滚动视图(蓝色)成为子视图(黄色)的子视图。子视图总是出现在其父视图的“前面”。就像全家福一样,孩子们总是站在父母面前 :) 所以,在 viewDidLoad 中使用 addSubView 方法,将消息发送到 addSubview,而不是只添加蓝色主视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 2014-04-10
      相关资源
      最近更新 更多