Вопрос по макету при переключении экранов в ландшафтном режиме ios в Swift - PullRequest
0 голосов
/ 28 мая 2020

enter image description here

Приложение, показанное на фотографии выше, является приложением для чтения. Главный экран - это экран, на котором отображается список книг, и только в портретном режиме.

Однако альбомный режим доступен на экране для чтения книги. Проблема при возврате к главному экрану в ландшафтном режиме.

enter image description here

Как показано на фотографии выше, collectionView остается в ландшафтном режиме, хотя возвращается в портретный режим из режима landscpae.

struct AppUtility {
    static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
        if let delegate = UIApplication.shared.delegate as? AppDelegate {
            delegate.orientationLock = orientation
        }
    }

    static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {
        self.lockOrientation(orientation)
        UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")
    }
}

На экране читать книгу через этот код

AppUtility.lockOrientation (UIInterfaceOrientationMask.all)

А на главном экране

AppUtility.lockOrientation (UIInterfaceOrientationMask.portrait, andRotateTo: UIInterfaceOrientation.portrait)

Загрузить код через viewWillAppear

Как может collectionView выглядеть естественно в портретном режиме, даже когда я возвращаюсь с экрана чтения на домашний экран?

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