2015-01-14 4 views
5

Можно ли сделать снимок экрана с видом, который включает CAEmitterLayer?Снимок экрана с CAEmitterLayer

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

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

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

+0

Наконец, я получаю что-то с помощью: drawViewHierarchyInRect, этот пост говорит о CAEmitterLayer не в состоянии быть сделано в процессе визуализации InContext http://stackoverflow.com/questions/11926690/caemitterlayer-not-rendering-when-renderincontext-of-superlayer-is-called – Chris

ответ

1

Это работает прошивку, но теперь мне нужен подобный метод для 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 
} 
+0

Привет Крис, я пробовал код, но я сталкиваюсь с проблемой с качеством изображения и отсутствующими моментальными снимками , Могли бы предложить для решения ..? –

+0

Это вопрос масштаба? если это так, установите для параметра масштаба значение 1,0 - 0. – Chris

+0

, а также отсутствующие данные моментального снимка из-за afterScreenUpdates: false.if i set afterScreenUpdates: true UIView был мигающим, а затем обновлен –

Смежные вопросы