调用layer.setNeedsDisplay()显示黑色背景

当我在我的UIView的CALayer(直接或通过needsDisplayOnBoundsChange )调用setNeedsDisplay()时,它将背景绘制为黑色。

 myView.layer.setNeedsDisplay() 

当我直接调用UIView上的setNeedsDisplay()时,它不会显示为黑色:

 myView.setNeedsDisplay() 

为什么会发生这种情况,我该如何解决?

在这里输入图像说明

问题是我的视图的背景颜色设置nil而不是.white.clear ,例如。

这似乎很奇怪,只有在图层上调用而不是视图时才会发生这种情况。

重现…

这显示为白色:

 myView.backgroundColor = nil myView.setNeedsDisplay() 

这导致视图显示为黑色:

 myView.backgroundColor = nil myView.layer.setNeedsDisplay()