Как настроить вращение камеры (без использования устаревшего кода) - PullRequest
0 голосов
/ 29 сентября 2018

В основном, как это сделать:

    - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [[(AVCaptureVideoPreviewLayer *)[[self previewView] layer] connection] setVideoOrientation:(AVCaptureVideoOrientation)toInterfaceOrientation];
}

без использования устаревшего кода (willRotateToInterfaceOrientation)

Моему приложению требуется iOS 9, если новый код задом напередсовместим настолько далеко, мне не нужно хранить приведенный выше код.Apple предлагает использовать viewWillTransitionToSize:withTransitionCoordinator:, но я не знаю, как.

РЕДАКТИРОВАТЬ:

Я пытался (как предложено @Matt)

- (void)viewDidLoad
{
[super viewDidLoad];
override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(
                                           forName: UIApplication.willChangeStatusBarOrientationNotification,
                                           object: nil, queue: nil) { n in
        // this is where you respond
        if let userInfo = n.userInfo {
            // use the userInfo to find out what the new orientation is...
        }
    }
}
}

Но он выбрасывает Useиз-за ошибки переопределения необъявленного идентификатора, потому что он в быстром.

1 Ответ

0 голосов
/ 01 октября 2018

Если вы не пытаетесь смешать objc с swift, в противном случае вам нужно преобразовать код Мэтта в objc, например, как показано ниже:

- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleDeviceOrientationChange) name:UIApplicationWillChangeStatusBarOrientationNotification object:nil];
}

-(void)handleDeviceOrientationChange:(NSNotification *)notification {
    NSDictionary *userInfo = notification.userInfo;
    // Your code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...