Анимированное изменение размера NSView не влияет на слой. Баг или совершенно правильно?
У меня есть два подкласса NSView:
DrawRectView
просто рисует цвет фона, используя метод drawRectLayerBackedView
также рисует цвет фона, используя подложку слоя
Следующий фрагмент кода изменяет размер анимации с помощью действий щелчка на представлениях:
@IBAction func clickDrawRectView(sender: NSClickGestureRecognizer) {
let height = drawRectView.frame.height * 1.2
let width = drawRectView.frame.width * 1.2
NSAnimationContext.runAnimationGroup({ (context) in
context.duration = 1.0
self.drawRectView.animator().frame = NSMakeRect(self.drawRectView.frame.origin.x, self.drawRectView.frame.origin.y, width, height)
}, completionHandler: nil)
}
@IBAction func clickLayerBackedView(sender: NSClickGestureRecognizer) {
let height = layerBackedView.frame.height * 1.2
let width = layerBackedView.frame.width * 1.2
NSAnimationContext.runAnimationGroup({ (context) in
context.duration = 1.0
self.layerBackedView.animator().frame = NSMakeRect(self.layerBackedView.frame.origin.x, self.layerBackedView.frame.origin.y, width, height)
}, completionHandler: nil)
}
DrawRectView оживляет как ожидалось, но LayerBackedView не делает. Он просто переходит на следующий прямоугольник с любой анимацией.
Так как же перенести ту же анимацию в представление со слоями?