0

UIImagePickerController을 사용하여 내 앱에서 맞춤 카메라를 구현했습니다.iPhone X의 전체 화면 카메라 용 축척

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
{ 
    ipc = [[UIImagePickerController alloc] init]; 
    ipc.delegate = self; 

    ipc.sourceType = UIImagePickerControllerSourceTypeCamera; 
    ipc.showsCameraControls = NO; 

    [[NSBundle mainBundle] loadNibNamed:@"SnapItCameraView" owner:self options:nil]; 
    self.overlayView.frame = ipc.cameraOverlayView.frame; 
    ipc.cameraOverlayView = self.overlayView; 
    self.overlayView = nil; 

    //For iphone 5+ 
    //Camera is 426 * 320. Screen height is 568. Multiply by 1.333 in 5 inch to fill vertical 
    CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, 71.0); //This slots the preview exactly in the middle of the screen by moving it down 71 points 
    ipc.cameraViewTransform = translate; 

    CGAffineTransform scale = CGAffineTransformScale(translate, 1.333333, 1.333333); 
    ipc.cameraViewTransform = scale; 
    ipc.showsCameraControls = NO; 
    ipc.tabBarController.tabBar.hidden = YES; 
    ipc.allowsEditing = NO; 
    [self presentViewController:ipc animated:YES completion:nil]; 
} 

그러나, 카메라가 화면 상단에 아이폰 X. 그 높이의 화면을 채울하지 않지만 하단에 검은 색 막대가있다 : 나는 이전에 this transformation을 적용하여 카메라 전체 화면을했다 .

난 1.3 수직으로 화면을 채울 수있는 잘못된 배율 문제입니다 가정합니다. 카메라가 iPhone X 용 전화의 전체 화면을 채우고 싶습니다.

+0

기타 @Matt : "1.3은 화면을 수직으로 채우는 잘못된 배율이라는 것이 문제라고 생각합니다." 질문이 무엇인지 명확히 할 수 있습니까? 문제를 재현 할 수있는 충분한 코드를 보여주지 못하고 있으며 자신이하려는 일에 대해 명확하지 않습니다. – matt

+0

@matt 죄송합니다. 내 설명이 나아 졌어? – Matt

+0

예! - 테스트 할 수없는 iPhone X가 없습니다. 그러나 당신에게 이것을 물어 보도록하겠습니다 : 하드 코드 번호를 다른 것으로 변경하면 (더 큰?), 더 낫지 않습니까? – matt

답변

1

대신에 계산할 수있는 비율은 그다지 중요하지 않습니다.

화면 높이 (568)를 카메라보기 높이 (426)로 나누면 1.3333이 계산됩니다. 그 논리는 X에서 동일하게 작동해야하지만 모든 전화기가 동일한 화면 크기를 공유하는 대신 올바른 매개 변수를 제공해야합니다.

또한이 이미지를 변형하면 비율에 비례하여 크기가 조정 된 부분이 잘릴 수 있습니다.