2017-04-04 108 views
1

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

myView.layer.setNeedsDisplay() 

当我呼吁的UIView“setNeedsDisplay()”直接,它不会显示为黑色:

myView.setNeedsDisplay() 

为什么会发生这种情况,我怎么能解决这个问题?

enter image description here

回答

1

的问题是,我的观点的背景颜色莫名其妙地被设置为nil,而不是.white.clear,例如。

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

要重现...

这显示为白色:

myView.backgroundColor = nil 
myView.setNeedsDisplay() 

这使视图以显示为黑色:

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