Нужна помощь в предотвращении поворота UIImagePickerController моего UIView только для портрета в IOS13 - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть приложение, в котором я делаю UIView для загрузки и загрузки изображений. Мое приложение только портретное, в течение многих лет в моем файле info.plist настраивалось " поддерживаемые ориентации интерфейса ".

Моя проблема заключается в том, что это происходит только на моем iPhone 11 наIOS 13, НЕ на моем iphone7, работающем под управлением ios12.

  1. Мой вид отображается в портретном режиме, как это всегда бывает в моих представлениях.
  2. У меня есть кнопка, которая открывает UIPickerViewController вот так:

    UIImagePickerController *picker = [[[UIImagePickerController alloc] init] autorelease];
    
    picker.delegate = self;
    
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    
    [self presentViewController:picker animated:true completion:nil];
    

Если затем повернуть камеру в альбомную ориентацию, сделать снимок ИЛИ отменить, мой UIView, который ранее был в портретной ориентации, теперь находится в альбомной ориентации! Это, очевидно, выглядит очень странно.

Как только я поместил его в портрет, он снова твердо встал на место.

Опять же, похоже, что это происходит только на IOS13, но я понятия не имею, какрешить это.

Я попытался переопределить shouldAutorotateToInterfaceOrientation в моем UIView, это не помогло.

Смотрите скриншот ниже, как он выглядит после того, как камера повернула его.

У кого-нибудь есть мысли ?? Указатели очень ценятся.

After

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

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

class CustomUIImagePickerController: UIImagePickerController {

    override var shouldAutorotate: Bool {
        return false
    }

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return .portrait
    }
}

0 голосов
/ 08 ноября 2019

Пользовательский viewcontroller унаследован от UIImagePickerController и переопределяет shouldAutorotate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...