Как я могу создать новый CALayer из уровня представления? - PullRequest
0 голосов
/ 13 июня 2019

Я снимаю кадр анимированного представления, и я хотел бы использовать это для создания нового CALayer для добавления к представлению.Это код, который у меня есть на данный момент, но ничего не появляется;

let screenshot = animatedView.layer.presentation() let newLayer = CALayer.init(layer: screenshot) self.view.layer.addSublayer(newLayer)

Спасибо за любую помощь:)

1 Ответ

0 голосов
/ 13 июня 2019

presentation() просто возвращает копию layer, как она представлена ​​на экране.

Попробуйте это так:

if let screenshot = animatedView.layer.presentation() {
    let modelLayer = CALayer(layer: screenshot)
    self.view.layer.addSublayer(modelLayer)
}

Вы также можете убедиться, что layer выложен первым, прежде чем позвонить presentation()

animatedView.layer.setNeedsLayout()

РЕДАКТИРОВАТЬ: Моя ошибка - я думаю, копия не может быть добавлена ​​в качестве подслоя. Отредактированный код выше включает правильную реализацию CALayer из копии презентации.

...