定义 CALayer 子类,override func draw(in ctx: CGContext) 的时候,如果我们在该方法中使用使用UIKit做绘制(比如UIColor.set(),UIBezierPath.stroke()),就有必要在方法头使用 UIGraphicsPushContext(ctx),在方法尾使用UIGraphicsPopContext()。因为UIKit的绘制,是基于Graphics stack的top context的,只有在UIGraphicsPushContext(ctx)之后,才有current context供这些UIKit绘制模块使用