调用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()