2017
La respuesta literal a esta pregunta:
"No se cambió el tamaño de CALayers en el cambio de límites de su UIView. ¿Por qué?"
es que para bien o para mal
needsDisplayOnBoundsChange
por defecto es falso en CALayer
.
solución,
class CircularGradientViewLayer: CALayer {
override init() {
super.init()
needsDisplayOnBoundsChange = true
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override open func draw(in ctx: CGContext) {
go crazy drawing in .bounds
}
}
De hecho, te dirijo a este QA
https://stackoverflow.com/a/47760444/294884
lo que explica, qué diablos hace el contentsScale
escenario crítico ; por lo general, debe establecerlo igualmente cuando establece needDisplayOnBoundsChange.