2017
A resposta literal a esta pergunta:
"CALayers não foram redimensionados com a alteração dos limites do UIView. Por quê?"
isso é para melhor ou para pior
needsDisplayOnBoundsChange
o padrão é falso em CALayer
.
solução,
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
}
}
Na verdade, eu direciono você para este controle de qualidade
https://stackoverflow.com/a/47760444/294884
o que explica o que diabos o contentsScale
cenário crítico faz; você geralmente precisa definir isso igualmente ao definir needsDisplayOnBoundsChange.