我使用下面的代碼與它的覆蓋視圖一起顯示UIPickerController:UIPickerController留下黑色底欄
-(void) viewDidLoad{
self.overlayView = [[OverlayViewController alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.overlayView.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;
imagePickerController.cameraOverlayView.frame=self.view.frame;
imagePickerController.showsCameraControls = NO;
imagePickerController.navigationBarHidden = YES;
imagePickerController.toolbarHidden = YES;
//imagePickerController.cameraViewTransform = CGAffineTransformScale(imagePickerController.cameraViewTransform, 1.0, 1.3);
imagePickerController.delegate = self.overlayView;
// as a delegate we will be notified when pictures are taken and when to dismiss the image picker
[self.view addSubview:imagePickerController.view];
imagePickerController.cameraOverlayView =self.overlayView.view;
} else {
[self.view addSubview:self.overlayView.view];
}
}
但是屏幕保持iPhone在畫像時在底部顯示一個黑條。您可能會在所附的屏幕截圖中看到橫幅中沒有橫條。如何解決它?
看起來overlayView是以編程方式創建的,您需要調整overlayView的模式(Scale to Fill,Aspect Fit,..)或調整攝像頭視圖的大小。 在您的肖像截圖中,相機視圖適合主視圖,並且由於相機(4:3)和iPhone屏幕(16:9)的高寬比不同,您會看到黑條。 在您的橫向屏幕截圖中,似乎縮放了相機視圖以填充屏幕,但圖像在頂部和底部被裁剪。 – iCode
那我應該怎麼做呢?我不能依靠未來設備的最終尺寸來正確地加熱屏幕......是不是有辦法填滿屏幕,所以它是? –
爲overlayView我坦率地說,沒有其他方式來創建它,但編程。甚至連UIImagePicker控制器都沒有Storyboard對應物,關於它的overlayView怎麼說?! –