Определить, на какой стороне находится кнопка «Домой», когда устройство обращено вверх - PullRequest
0 голосов
/ 01 октября 2018

Как часть приложения, над которым я сейчас работаю, мне нужно щелкнуть изображение и затем показать полученное изображение в правильной ориентации.

Помните, что пользователь может щелкнуть изображение в любой доступной ориентации (портрет, пейзаж влево / вправо, лицом вверх).Я могу добиться желаемого результата для всех режимов, но ориентация вверх.

Мой вопрос: Есть ли способ определить, с какой стороны будет находиться кнопка «Домой», когда устройство обращено вверх?Если да, то как я могу добиться того же? Обратите внимание, что приложение предназначено для использования только в портретном режиме.Таким образом, я думаю, что использование ориентации строки состояния в значительной степени выходит за пределы окна.

Будем рады услышать ваши мысли о том же.

Ответы [ 3 ]

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

Исходя из ваших потребностей, вы должны использовать UIInterfaceOrientation вместо UIDeviceOrientation, хотя они несколько схожи, они имеют разные эффекты.

Когда ориентация вашего устройства направлена ​​вверх / вниз, ориентация вашего пользовательского интерфейсапо-прежнему один из верхнего, нижнего, левого и правого.

Пример кода.

switch UIApplication.shared.statusBarOrientation {
    case .portrait:
      print("Home button in bottom")
    case .portraitUpsideDown
      print("Home button in top")
    case .landscapeLeft
      print("Home button in left")
    case .landscapeRight
      print("Home button in right")
    default:
      print("The interface may be rotating.")
    }
0 голосов
/ 01 октября 2018
    if UIDevice.current.orientation == UIDeviceOrientation.landscapeRight {

        ...

    } else if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft {

        ...

    } else if UIDevice.current.orientation == UIDeviceOrientation.portrait {

        ...

    }
    else {

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

Вы можете сделать:

if UIDevice.current.orientation == .portraitUpsideDown {
     print ("Divice oriented vertically, home button on top")
}

Есть также faceDown, faceUp и другие.Проверьте документацию для получения дополнительной информации.

...