2015-01-14 37 views
5

Bir CAEmitterLayer içeren bir görünümün ekran görüntüsünü almak mümkün mü? Ben CAEmitterLayer drawingView.layerEkran Görüntüsü CAEmitterLayer ile görüntüleme

+0

Son olarak, kullanarak bir şey olsun: drawViewHierarchyInRect, CAEmitterLayer edememekle ilgili bu yayını görüşmeler hale çekiliyor InContext http://stackoverflow.com/questions/11926690/caemitterlayer-not-rendering-when-renderincontext-of-superlayer-is-called – Chris

cevap

1

Bu açık olduğunu doğruladı

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

:

Ben denemek zaman

, görünüm ince oluşturulur, ancak parçacıkların hepsi eksik, burada benim kod iOS için çalışır, ama şimdi OSX için benzer bir yöntem gerekir:

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

Merhaba Chris, kodu denedim ancak görüntü kalitesi ve eksik anlık görüntü verileriyle ilgili sorun yaşıyorum , Çözüm için önerebilir misiniz ..? –

+0

Bu bir ölçek sorunu mu? öyleyse, ölçek parametresi için 1,0 değerini 0 olarak ayarlayın. – Chris

+0

ve aynı zamanda afterScreenUpdates nedeniyle anlık görüntü verisi eksik: false.if sonra AfterScreenUpdates: true UIView yanıp söner ve daha sonra –

İlgili konular