사각형보기 컨테이너에 포함 된 UIImagePickerController를 사용하고 있습니다. iOS 8 및 9에서는 정상적으로 작동합니다. iOS 10에서는 UIImagePickerController의 내부 객체가 카메라 선택기 컨트롤러의 전체 너비까지 늘어나지 않습니다. 2 개 스크린 샷을 참조하십시오 iOS10 UIImagePickerController ChildViewController로 임베드되어 서브 뷰를 올바르게 표시하지 않습니다.
뷰 관리자에서 선택한보기는 다음과 같습니다 (UIImagePickerController를 내부) CAMPreviewView. 여기
은 서브 뷰로 UIImagePickerController를을 삽입하는 내가 사용하는 코드입니다 :- (void) presentCameraInWindow {
[self addChildViewController:self.videoRecorder];
[self.cameraHolder
addControls:@[self.videoRecorder.view]
align:VerticalAlignStretchToFullHeight
withHeight:self.view.bounds.size.width
verticalPadding: 0.0f
horizontalPadding:0.0f];
[[self.videoRecorder view] setNeedsLayout];
[self.view layoutIfNeeded];
[self.videoRecorder didMoveToParentViewController:self];
}
참고 : addControls 내가 모든 곳에서 사용할 내가 만든 수직 레이아웃 엔진입니다. 프로그래밍 방식으로 제약 조건을 자동으로 생성하므로 필요하지 않습니다.
이 설정은 viewDidLoad에서 호출합니다.
Constraints를 사용하지 않으면 동일한 문제가 발생하며 UIImagePickerController 프레임을 수동으로 설정합니다.
뷰 관리자에서 UIImagePickerController가 올바르게 배치되어 있는지 (컨테이너 뷰의 전체 너비와 높이까지만 표시되지만 내부 서브 뷰는 그렇지 않음) 명확하게 볼 수 있습니다.
기타 : 노력으로 인해 AVFoundation을 직접 사용할 수있는 옵션이 없습니다.
해결 방법이 있습니다. 이제 UIImagePickerController를 부모 뷰 컨트롤러의 self.view에 추가합니다. 이 문제는 작은보기에 추가하려고 할 때만 발생했습니다. 제약 조건 기반 내부 이미지 선택기는 자체 프레임보다 작은보기에 집어 넣을 때 끊어집니다. 즉, 전체 화면이되고 싶습니다. 그래서 self.view에 추가 한 다음 원하는 위치로 옮겼습니다. (화면 높이 - 화면 너비/2.0으로 위로 이동 한 다음) 오버레이보기로 덮었습니다. . – Alex