我正在使用AV Foundation并创建了一个主图层和一个子图层。主图层显示相机在用户拍照前看到的实时“预览”。在用户拍照后,我想将子图层内容属性的值设置为捕获的照片。除了设置子图层的内容外,一切都很完美。
我知道子层正在工作,因为我可以给它一个蓝色的背景颜色,当我在应用程序中拍照时它会成功地将子图层变为蓝色。
这是我的代码,我试图将子图层设置为捕获的图像:
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 :(得分:0)
我一时兴起尝试将.CGImage添加到imageWithData方法调用,现在它正在运行。我确定希望它在xcode文档中列为要求。