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