Swift 圆角CALayer显示黑色或外来内容

Swift 圆角CALayer显示黑色或外来内容,swift,macos,calayer,nsview,Swift,Macos,Calayer,Nsview,事情是这样的:我有一个差不多完成的应用程序。我添加了一个与GUI完全无关的特性(所以我认为),我注意到GUI元素有一种奇怪的行为,这种行为已经被完美地修饰和工作了。经过两周的玩转,禁用/启用代码,重新创建和修改东西,我已经找不到解决这个问题的线索了 请看这张照片: 有两个同时出现的bug,这就是为什么我把它们合并成一个问题 我有一个简单的背景视图,其中.wantsLayer=true和.masksToBounds=true。在它上面,我有多个具有相同设置和.cornerRadius的视图。几周

事情是这样的:我有一个差不多完成的应用程序。我添加了一个与GUI完全无关的特性(所以我认为),我注意到GUI元素有一种奇怪的行为,这种行为已经被完美地修饰和工作了。经过两周的玩转,禁用/启用代码,重新创建和修改东西,我已经找不到解决这个问题的线索了

请看这张照片:

有两个同时出现的bug,这就是为什么我把它们合并成一个问题

  • 我有一个简单的背景视图,其中.wantsLayer=true和.masksToBounds=true。在它上面,我有多个具有相同设置和.cornerRadius的视图。几周前,这一切都很顺利。现在我可以看到一些(不是每一个)角落实际上没有被切断,而是显示(通常只是黑色)内容
  • 某些角显示白色内容(左上角)。有些显示完全不同的层(底部视图)的内容 澄清一下:出于调试原因,我在图片顶部的白色视图下方添加了一个简单的红色分层视图。我希望白色视图的顶部和底部都有圆角(红色!)。然而,上面的那个是白色的(有一条红线),下面的那个一点也不圆。第二,这个对我来说很奇怪,底部视图根本没有任何设置为红色!红色的角来自顶视图图层的颜色!如果我将俯视图的背景视图设置为蓝色而不是红色,则底部视图的角也将变为蓝色

    到目前为止,我发现:

  • 当父视图未设置为.maskToBounds=true时,通常会发生拐角事件。这是在我的例子中设定的,它以前也起过作用。我怎么能在不接触Interface Builder中的任何相关代码或视图的情况下将其搞糟呢
  • 我在网上找不到任何关于显示其他层内容的层的内容,这些层的部分不应该是可见的
  • 任何帮助都将不胜感激


    注意:在底部视图上有一个阴影,这是一个完全不同的视图,在下面什么也不做,只是投下一个阴影。我忘了在截图时删除它。

    我不知道这种行为背后的原因,但我找到了解决办法

    许多视图(带有CALayers)和子视图中的一个是NprogressingIndicator。我给它分配了一个名为“色调调整”的内容过滤器,它的值为-0.5,以便使条具有不同的颜色。在Interface Builder中删除此内容过滤器解决了此问题,GUI看起来应该:

    我仍然有兴趣知道为什么会发生这种情况,以及我如何保持我的有色进度条而不失去角落