modifiedMetadataObjectMethodObject가 previewLayer의 크기를 조절할 때만 문제가 발생하는 경우 문제가 불안정합니다 (업데이트 할 때마다 두 크기 사이의 크기가 변경됩니다). 만드는Objectively C transformedMetadataObjectForMetadataObject 미리보기 레이어의 크기를 조절할 때 불안정한 크기가됩니다.
는for(AVMetadataObject *metadataObject in metadataObjects) {
if([metadataObject.type isEqualToString:AVMetadataObjectTypeFace]) {
// Take an image of the face and pass to CoreImage for detection
AVMetadataObject *metadataObjectR=[previewLayer transformedMetadataObjectForMetadataObject:metadataObject];
previewLayer.bounds = CGRectMake(previewLayer.bounds.origin.x,previewLayer.bounds.origin.y, metadataObjectR.bounds.size.width,metadataObjectR.bounds.size.height);
코드 previewLayer (previewViewLayer가의 CALayer입니다)
[captureSession addInput:vInput];
[captureSession setSessionPreset:AVCaptureSessionPresetPhoto];
previewViewLayer = [self.view layer];
[previewViewLayer setBackgroundColor:(__bridge CGColorRef _Nullable)([UIColor blackColor])];
previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:captureSession];
[previewLayer setFrame:[previewViewLayer bounds]];
[previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[previewViewLayer addSublayer:previewLayer];