2017
Bu sorunun gerçek cevabı:
"CALayers, UIView sınırları değiştiğinde yeniden boyutlandırılmadı. Neden?"
bu daha iyi mi kötü mü
needsDisplayOnBoundsChange
varsayılan olarak yanlış girilir CALayer
.
çözüm,
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
}
}
Doğrusu, sizi bu QA'ya yönlendiriyorum
https://stackoverflow.com/a/47760444/294884
bu kritik contentsScale
ortamın ne yaptığını açıklıyor ; needDisplayOnBoundsChange'i ayarladığınızda genellikle bunu eşit şekilde ayarlamanız gerekir.