我使用下面的代码与它的覆盖视图一起显示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怎么说?! –