iPhone X скрыть домашний индикатор на контроллере просмотра
У меня есть представление-контроллер, который занимает весь экран сверху вниз. Я хотел бы скрыть индикатор home bar в нижней части экрана на устройствах iPhone X.
Как я могу это сделать в iOS 11?
5 ответов
вы должны переопределить prefersHomeIndicatorAutoHidden()
в вашем контроллере представления для достижения этого:
override func prefersHomeIndicatorAutoHidden() -> Bool {
return true
}
имейте в виду, что он будет отображаться при скольжении снизу, так же, как индикатор Центра управления в полноэкранном приложении в iOS
есть еще одна альтернатива. Если вы ищете поведение, в котором индикатор тускнеет, то когда пользователь проводит пальцем вверх, он активируется, и когда они снова проводят пальцем вверх, вызывается действие home (т. е. для вызова требуется два свайпа), то ответ здесь: iPhone X home индикатор поведения. Короче говоря, это переопределить на вашем UIViewController:
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return .bottom
}
prefersHomeIndicatorAutoHidden
только скрывает индикатор, но не будет подавлять этот жест.
и вы получите то, что вы хотите (если я правильно понимаю ваши комментарии - ваш вопрос и выбранный ответ, похоже, подразумевают другой ответ).
override func prefersHomeIndicatorAutoHidden() -> Bool {
return true
}
Я полагаю, вы можете добавить этот метод в свой индикатор AppDelegate for hide home на всех ваших ViewControllers.
если window?.rootViewController
это UITabBarController
или UINavigationController
, просто унаследуем его и добавьте две функции следующим образом:
override var prefersHomeIndicatorAutoHidden: Bool {
return true
}
//@available(iOS 11, *)
override var childViewControllerForHomeIndicatorAutoHidden: UIViewController? {
return nil
}