2017
Câu trả lời theo nghĩa đen cho câu hỏi này:
"CALayers không bị thay đổi kích thước khi thay đổi giới hạn UIView của nó. Tại sao?"
đó là tốt hơn hay tệ hơn
needsDisplayOnBoundsChange
mặc định là false trong CALayer
.
giải pháp,
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
}
}
Thật vậy, tôi hướng bạn đến QA này
https://stackoverflow.com/a/47760444/294884
trong đó giải thích, contentsScale
cài đặt quan trọng làm cái quái gì ; bạn thường cần thiết lập như nhau khi bạn đặt needDisplayOnBoundsChange.