Я добавляю пользовательское наложение к UIImagePickerController и существует персистентная черная полоса у основания представления. Вот мой код для инстанцирования контроллера.
- (UIImagePickerController *)imagePicker {
if (_imagePicker) {
return _imagePicker;
}
_imagePicker = [[UIImagePickerController alloc] init];
_imagePicker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
_imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
_imagePicker.showsCameraControls = NO;
_imagePicker.wantsFullScreenLayout = YES;
_imagePicker.navigationBarHidden = YES;
_imagePicker.toolbarHidden = YES;
} else {
_imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
return _imagePicker;
}
Возвращенный контроллер отображен модально и работает просто великолепно (т.е. отображает полный экран), когда я не скрываю управление камерой.
Благодаря предложению Ole я получил его работающий с этим кодом:
// Resize the camera preview
_imagePicker.cameraViewTransform = CGAffineTransformMakeScale(1.0, 1.03);
3%-е увеличение высоты работало просто великолепно. Когда я добавляю свою пользовательскую панель инструментов внизу экрана больше нет видимой черной полосы через окно.
Соотношение сторон камеры - 4: 3, а соотношение сторон экрана - 3: 2. Таким образом, изображение с камеры просто не может заполнить экран, если вы не хотите обрезать его до 3: 2. Для этого примените соответствующее масштабное преобразование.
Преобразуйте его следующим образом:
#define CAMERA_TRANSFORM 1.12412
_picker.wantsFullScreenLayout = YES;
_picker.cameraViewTransform = CGAffineTransformScale(_picker.cameraViewTransform, CAMERA_TRANSFORM, CAMERA_TRANSFORM);