Дополнительное нижнее пространство / дополнение на iPhone X?

На iPhone X в портретном режиме, если вы установите нижнее ограничение в безопасную область на 0, вы получите дополнительное пространство в нижней части экрана. Как вы программно получаете высоту этого дополнительного дополнения?

Мне удалось вручную определить высоту этого дополнения, которое составляет 34, и вот как мне удалось реализовать его с обнаружением iPhone X:

Swift 4.0 и Xcode 9.0

if UIDevice().userInterfaceIdiom == .phone { switch UIScreen.main.nativeBounds.height { case 2436: //iPhone X self.keyboardInAppOffset.constant = -34.0 default: self.keyboardInAppOffset.constant = 0 } } 

Есть ли более чистый способ определить высоту этого дополнения?

3 Solutions collect form web for “Дополнительное нижнее пространство / дополнение на iPhone X?”

В iOS 11 представления имеют свойство safeAreaInsets . Если вы получаете bottom свойство этих вложений, вы можете получить высоту нижней прокладки в то время как на iPhone X:

 if #available(iOS 11.0, *) { let bottomPadding = view.safeAreaInsets.bottom // ... } 

(аналогично верхнему отступу со строкой состояния)

В Objective-C

 if (@available(iOS 11.0, *)) { UIWindow *window = UIApplication.sharedApplication.keyWindow; CGFloat bottomPadding = window.safeAreaInsets.bottom; } 

Если вдруг у вас нет вида, например CollectionViewLayout, вы также можете получить его из окна:

 private static var itemHeight: CGFloat { guard #available(iOS 11.0, *), let window = UIApplication.shared.keyWindow else { return Constants.itemHeight } return Constants.itemHeight - window.safeAreaInsets.bottom } 
  • CloudKit: удаление локальных объектов на основе CKQueryNotification
  • Запрос Firebase с Swift 3.0
  • Цвет заголовка кнопки iOS не изменится
  • Как получить доступное имя Wi-Fi сети в iOS, используя быстрый
  • Как добавить изображение, которое может быть или не быть в хранилище Firebase?
  • График памяти Xcode 8 говорит «Нет выбора» и не работает
  • Неоднозначное использование оператора «+»
  • Как представить UIImagePickerController в Popover с iOS 9 и Swift
  • Расширение UICollectionView и его ячейки при прослушивании
  • FMDB: SQLite Statement ORDER BY заказывает диакритические ошибки неправильно
  • Какова логика в поставке фона HKObserverQuery?
  • Использовать общие WKWebViewCookies для запроса
  • Interesting Posts

    Цвет ссылки jsqmessagesviewcontroller

    Swift: SWReavealController не может прокрутить, чтобы закрыть меню «только открыть с помощью салфетки»

    Организуйте папку проекта

    Как рисовать линию дуги / кривой с помощью MKOverlayView на MKMapView

    Блоки Objective-C, Как сохранить значения контекста?

    Не существует допустимой строки права доступа «aps-environment» для приложения «MyApp»: (null). Уведомления не будут доставлены

    Как получить обзоры приложений от Itunes

    Xcode – удаление приложения перед запуском на устройстве

    Не удалось запустить тесты Calabash на устройстве iOS для приложения Xamarin

    Как получить доступ к возможностям вывода видео в iOS?

    Использование подтипа аудиоустройства VoiceProcessingIO вместо RemoteIO вызывает нежелательное падение объема вывода

    PyAPN и необходимость спать между передачами

    ITSAppUsesNonExemptEncryption Cordova Build

    Основной текст в содержимом UITableviewCell перекрывается и повторяется и накладывается на другие ячейки

    перетаскивание уведомлений

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.