2015-01-14 29 views
5

Có thể chụp ảnh màn hình của chế độ xem bao gồm CAEmitterLayer không?Ảnh chụp màn hình Xem với CAEmitterLayer

Bất cứ khi nào tôi cố gắng, quan điểm được tạo ra tốt, nhưng tất cả những phần tử bị mất tích, đây là mã của tôi:

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

Tôi đã xác nhận rằng CAEmitterLayer là trên drawingView.layer

+0

Cuối cùng, tôi nhận được một cái gì đó bằng cách sử dụng: drawViewHierarchyInRect, bài đăng này nói về CAEmitterLayer không thể rút ra khi hiển thị InContext http://stackoverflow.com/questions/11926690/caemitterlayer-not-rendering-when-renderincontext-of-superlayer-is-called – Chris

Trả lời

1

này hoạt động cho iOS, nhưng bây giờ tôi cần một phương pháp tương tự cho 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

Xin chào Chris, tôi đã thử mã nhưng tôi gặp phải vấn đề với chất lượng hình ảnh và dữ liệu chụp nhanh bị thiếu , Xin vui lòng đề nghị cho các giải pháp ..? –

+0

Đây có phải là vấn đề về quy mô không? nếu có, hãy đặt từ 0 đến 0 cho tham số tỷ lệ. – Chris

+0

và cũng thiếu dữ liệu ảnh chụp vì afterScreenUpdates: false.if tôi đặt afterScreenUpdates: true UIView nhấp nháy và sau đó cập nhật –

Các vấn đề liên quan