it-roy-ru.com

prefersHomeIndicatorAutoHidden не работает на iPhone X

В настоящее время я обновляю одно из своих приложений для iPhone X и пытался скрыть индикатор «home» в полноэкранном контроллере, показывающем изображение, используя:

override func prefersHomeIndicatorAutoHidden() -> Bool {
    return true
}

Этот метод, кажется, ничего не делает, хотя. Он никогда не вызывается, и домашний индикатор никогда не скрывается, даже через некоторое время бездействия. Симулятор, кажется, поддерживает это, так как приложение «Фотографии» скрывает индикатор «Домой».

Есть ли какой-то другой флаг, который нужно установить, чтобы это работало? Я пробовал это в нескольких контроллерах представления, и ни один из них не показывает правильное поведение.

Я тоже пытался добавить

if #available(iOS 11.0, *) {
    self.setNeedsUpdateOfHomeIndicatorAutoHidden()
}

на мое viewDidLoad() но безрезультатно

6
BlackWolf

Если вы показываете свой UIViewController в UINavigationController, вы должны переопределить функцию childViewControllerForHomeIndicatorAutoHidden():

extension UINavigationController {
    open override func childViewControllerForHomeIndicatorAutoHidden() -> UIViewController? {
        return topViewController
    }
}

Или, если вы показываете свой UIViewController подобный родительский контроллер представления, вы также должны переопределить эту функцию и вернуть дочерний контроллер представления.

5
Beniamin Sarkisian

В соответствии с руководство разработчика для предпочитает HomeIndicatorAutoHidden ясно, что,

Система учитывает ваши предпочтения, но возвращение ДА не гарантирует, что индикатор будет скрыт.

Этот метод полезен, только если какие-либо объекты перекрываются с индикатором home.

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

0
Forte Zhu