samsung reducir ocultar navegacion inferior iconos estado barra swift navbar statusbar

swift - reducir - ocultar iconos de la barra de estado android



cómo ocultar la barra de estado y la barra de navegación cuando toca el dispositivo (2)

Con Swift 4 y iOS 11, según sus necesidades, puede seleccionar uno de los tres fragmentos de código siguientes para resolver su problema.

# 1. Uso de la propiedad de UINavigationController hidesBarsOnTap + UIViewController prefersStatusBarHidden y preferredStatusBarUpdateAnimation properties

Desde iOS 8, UINavigationController tiene una propiedad hidesBarsOnTap . hidesBarsOnTap tiene la siguiente declaration :

var hidesBarsOnTap: Bool { get set }

Un valor booleano que indica si el controlador de navegación permite ocultar sus barras mediante un gesto de toque.

Apple también dice acerca de hidesBarsOnTap :

Cuando el valor de esta propiedad es true , el controlador de navegación alterna la ocultación y la visualización de su barra de navegación y barra de herramientas en respuesta a un toque no manejado en el área de contenido. El valor predeterminado de esta propiedad es false .

El siguiente código muestra cómo implementar hidesBarsOnTap :

import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() navigationController?.hidesBarsOnTap = true } override var prefersStatusBarHidden: Bool { return navigationController?.isNavigationBarHidden == true } override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { return UIStatusBarAnimation.slide } }

# 2. Usando UINavigationController setNavigationBarHidden(_:animated:) method + UIViewController prefersStatusBarHidden y preferredStatusBarUpdateAnimation propiedades con un UIButton

UINavigationController tiene un método llamado setNavigationBarHidden(_:animated:) . setNavigationBarHidden(_:animated:) tiene la siguiente declaration :

func setNavigationBarHidden(_ hidden: Bool, animated: Bool)

Establece si la barra de navegación está oculta.

El siguiente código muestra cómo alternar la barra de estado y la barra de navegación usando setNavigationBarHidden(_:animated:) con un UIButton establecido en el Guión gráfico y vinculado a una @IBAction :

import UIKit class ViewController: UIViewController { // Link this @IBAction to a `UIButton` @IBAction func toggle(_ sender: UIButton) { navigationController?.setNavigationBarHidden(navigationController?.isNavigationBarHidden == false, animated: true) } override var prefersStatusBarHidden: Bool { return navigationController?.isNavigationBarHidden == true } override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { return UIStatusBarAnimation.slide } }

# 3. Usando UINavigationController setNavigationBarHidden(_:animated:) method + UIViewController prefersStatusBarHidden y preferredStatusBarUpdateAnimation propiedades con un UIGestureRecognizer

Como alternativa al código anterior, puede usar setNavigationBarHidden(_:animated:) con un UIGestureRecognizer lugar de un UIButton :

import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let gesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.toggle)) view.isUserInteractionEnabled = true view.addGestureRecognizer(gesture) } @objc func toggle() { navigationController?.setNavigationBarHidden(navigationController?.isNavigationBarHidden == false, animated: true) } override var prefersStatusBarHidden: Bool { return navigationController?.isNavigationBarHidden == true } override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { return UIStatusBarAnimation.slide } }

Vea esta respuesta para una pregunta similar si necesita apuntar a iOS 10.

¿Cómo ocultar la barra de estado y la barra de navegación cuando toco el dispositivo como fotos en el iPhone? Yo habia usado

UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.Slide)

pero no está funcionando

Edición : me gustaría ocultar y mostrar la barra de estado y la barra de navegación, no ocultarla permanentemente.


En iOS 8 y superior, simplemente puedes usar hidesBarsOnTap :

navigationController?.hidesBarsOnTap = true