UIImagePickerController не заполняет экран

screenshot

Я добавляю пользовательское наложение к 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%-е увеличение высоты работало просто великолепно. Когда я добавляю свою пользовательскую панель инструментов внизу экрана больше нет видимой черной полосы через окно.

56
задан Glorfindel 23 July 2019 в 17:14
поделиться

2 ответа

Соотношение сторон камеры - 4: 3, а соотношение сторон экрана - 3: 2. Таким образом, изображение с камеры просто не может заполнить экран, если вы не хотите обрезать его до 3: 2. Для этого примените соответствующее масштабное преобразование.

37
ответ дан 26 November 2019 в 17:09
поделиться

Преобразуйте его следующим образом:

#define CAMERA_TRANSFORM                    1.12412

_picker.wantsFullScreenLayout = YES;
_picker.cameraViewTransform = CGAffineTransformScale(_picker.cameraViewTransform, CAMERA_TRANSFORM, CAMERA_TRANSFORM);
10
ответ дан 26 November 2019 в 17:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: