2014-02-20 76 views
1

我使用AV基金會已經創建了一個主層和子層。主層顯示相機在用戶拍照前看到的實時「預覽」。用戶拍攝照片後,我想將子圖層內容屬性的值設置爲捕獲的照片。除了設置子圖層的內容外,一切都可以完美運行。麻煩改變的CALayer的「內容」屬性來拍攝照片

而且我知道子層工作,因爲我能夠給它的藍色背景色,當我拍攝照片的應用程序,將成功打開子層藍色。

這裏是我的代碼,我想設置的子層是拍攝的圖像:

NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer]; 


UIImage *image = [[UIImage alloc]initWithData:imageData]; 


CALayer *subLayer = [CALayer layer]; 


subLayer.contents = (id)[UIImage imageWithData:imageData]; 


subLayer.frame = _previewLayer.frame; 


[_previewLayer addSublayer:subLayer]; 

我已經嘗試設置子層的內容屬性像這樣的幾種不同的方式,但他們沒有工作:

subLayer.contents = (id) [UIImage imageWithData:imageData]; 

subLayer.contents = [UIImage imageWithData:imageData]; 

subLayer.contents = image; 

另外,我知道子層的設置是否正確,因爲如果我添加此語句將打開子層或全藍,當我拍照: subLayer.backgroundColor = [UIColor blueColor].CGColor;

任何想法如何,我可以更新子層,使其顯示被拍攝的照片?

回答

0

一時心血來潮我嘗試添加.CGImage到imageWithData方法調用和它現在的工作。我當然希望它在xcode文檔中列出了這個要求。