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

时间:2017-04-04 19:02:36

标签: ios uiview core-graphics calayer

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

myView.setNeedsDisplay()

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

nil

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

enter image description here

1 个答案:

答案 0 :(得分:2)

问题在于,我的视图的背景颜色以某种方式设置为.white,而不是.clearmyView.backgroundColor = nil myView.setNeedsDisplay()

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

重现...

显示为白色:

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

这会导致视图显示为黑色:

{{1}}