Я использую AV Foundation и создал основной слой и дополнительный слой. Основной слой отображает живой «предварительный просмотр» того, что камера видит, прежде чем пользователь сделает снимок. После того, как пользователь сделает снимок, я хочу установить значение свойства содержимого подуровня на захваченную фотографию. Все работает отлично, за исключением установки содержимого подслоя.Проблема с изменением свойства содержимого 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;
Любые идеи о том, как я могу обновить подуровень и заставить его отображать фотографию, которая захватывается?