Ios 将CALayer的“内容”属性更改为捕获的照片时出现问题 我使用AV基金会,创建了一个主层和一个子层。在用户拍照之前,主层显示相机所看到的实时预览。在用户拍摄照片之后,我想将子层的contents属性的值设置为捕获的照片。除了设置子层的内容外,所有操作都非常完美

Ios 将CALayer的“内容”属性更改为捕获的照片时出现问题 我使用AV基金会,创建了一个主层和一个子层。在用户拍照之前,主层显示相机所看到的实时预览。在用户拍摄照片之后,我想将子层的contents属性的值设置为捕获的照片。除了设置子层的内容外,所有操作都非常完美,ios,objective-c,uiimage,avfoundation,calayer,Ios,Objective C,Uiimage,Avfoundation,Calayer,我知道子层正在工作,因为我可以给它一个蓝色的背景色,当我在应用程序中拍照时,它会成功地将子层变成蓝色 下面是我试图将子层设置为捕获图像的代码: NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer]; UIImage *image = [[UIImage alloc]initWithData:imageData]; CALayer *s

我知道子层正在工作,因为我可以给它一个蓝色的背景色,当我在应用程序中拍照时,它会成功地将子层变成蓝色

下面是我试图将子层设置为捕获图像的代码:

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


有什么办法可以更新子层并使其显示正在拍摄的照片吗?

我一时兴起,尝试将.CGImage添加到imageWithData方法调用中,现在它可以工作了。我真希望它能在xcode文档中作为一项要求列出