UIImagePickerController не заполняет экран - PullRequest
56 голосов
/ 20 апреля 2010

скриншот http://i39.tinypic.com/oiermb.png

Я добавляю пользовательский оверлей к 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;
}

Возвращенный контроллер отображается модально и работает просто отлично (то есть отображает полный экран), когда я не скрываю элементы управления камерой.


Благодаря предложению Оле я начал работать с этим кодом:

// Resize the camera preview
        _imagePicker.cameraViewTransform = CGAffineTransformMakeScale(1.0, 1.03);

Увеличение высоты на 3% сработало просто отлично. Когда я добавляю свою пользовательскую панель инструментов внизу экрана, в окне больше не появляется черная полоса.

Ответы [ 11 ]

0 голосов
/ 19 сентября 2016

Попробуйте использовать этот код:

picker.wantsFullScreenLayout = YES;
CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, 71.0);
CGAffineTransform scale = CGAffineTransformScale(translate, 1.333333, 1.47);
picker.view.transform = scale;
...