Просмотр снимка экрана с помощью CAEmitterLayer

Можно ли сделать скриншот представления, включающего CAEmitterLayer?

Всякий раз, когда я пытаюсь, представление создается нормально, но все частицы отсутствуют, вот мой код:

UIGraphicsBeginImageContext(drawingView.frame.size)
var context:CGContextRef = UIGraphicsGetCurrentContext()
drawingView.layer.renderInContext(context)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image

Я подтвердил, что CAEmitterLayer находится на DrawingView.layer


person Chris    schedule 14.01.2015    source источник
comment
Наконец, я получаю кое-что, используя: drawViewHierarchyInRect, в этом сообщении говорится о том, что CAEmitterLayer не может быть отрисован в renderInContext stackoverflow.com/questions/11926690/   -  person Chris    schedule 17.01.2015


Ответы (1)


Это работает для iOS, но теперь мне нужен аналогичный метод для OSX:

func offscreenScreenshot(drawingView:UIView) -> Image
{
    UIGraphicsBeginImageContextWithOptions(drawingView.frame.size, true, 1.0)
    let res = drawingView.drawViewHierarchyInRect(drawingView.bounds, afterScreenUpdates: false)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return image
}
person Chris    schedule 17.01.2015
comment
Привет, Крис, я попробовал код, но столкнулся с проблемой качества изображения и отсутствующих данных снимка. Не могли бы вы предложить решение ..? - person Lakshmi Keerthana Siddu; 20.03.2017
comment
Это проблема масштаба? если это так, установите 1,0 на 0 для параметра шкалы. - person Chris; 20.03.2017
comment
а также отсутствующие данные снимка из-за afterScreenUpdates: false.if я установил afterScreenUpdates: true UIView мигал, а затем обновлялся - person Lakshmi Keerthana Siddu; 20.03.2017
comment
Я думаю, вам может понадобиться опубликовать код, может быть, новый вопрос SO - person Chris; 20.03.2017
comment
вы можете проверить эту ссылку stackoverflow. ком/вопросы/42918044/ - person Lakshmi Keerthana Siddu; 21.03.2017