Lo siento si alguien había hecho esa pregunta antes, no encontré lo mismo. Tengo una vista con una imagen y siempre debe estar fija en la parte inferior de mi aplicación iOS Swift. Incluso si voy a otra pantalla, todavía tiene que estar en la parte inferior, y tiene que ser la misma vista, no diferentes para diferentes pantallas. Gracias

-6
Denis Khabarov 8 sep. 2018 a las 17:02

3 respuestas

La mejor respuesta

Convierta el controlador de vista raíz para su aplicación en un UIViewController genérico.

Agregue su vista de imagen a la parte inferior de su controlador de vista raíz

Arrastre una vista de contenedor a ese controlador de vista. Haga que la vista del contenedor se extienda hasta justo por encima de la vista de su imagen.

Ahora cree una nueva escena de controlador de vista en su guión gráfico. Puede ser un controlador de vista de navegación si desea una pila de navegación, o un controlador de barra de pestañas, o el tipo que desee.

Control-arrastre desde la vista de contenedor en su controlador de vista raíz a su nuevo controlador de vista. Seleccione "incrustar" en el cuadro de diálogo que aparece. Ahora ha creado un segmento de inserción y su controlador de vista raíz contiene un controlador de vista secundario.

Ahora, realice toda su navegación desde su controlador de vista secundario. Siempre ocupará la mayoría, pero no toda la pantalla, y el controlador de vista raíz seguirá siendo visible con la vista de imagen en su parte inferior.

0
Duncan C 8 sep. 2018 a las 15:24

Puede crear una vista personalizada con imagen para cargar cada pantalla como vista fija.

//CusomeView

import UIKit

class CustomeView: UIView {

var contentView: UIView!
override init(frame: CGRect) {
    super.init(frame: frame)

}
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

}


}

Ahora puede agregar esta Vista personalizada a cada viewController donde desea mostrar en el área inferior, verifique el código a continuación para cargar la vista personalizada.

También puede crear un método común para cargar una vista personalizada.

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var cv: CustomeView!
override func viewDidLoad() {
    super.viewDidLoad()
    if let customView = Bundle.main.loadNibNamed("CustomeView", owner: self, options: nil)?.first as? CustomeView {
        self.view.addSubview(customView)
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

Espero que esta ayuda

-2
Kerberos 8 sep. 2018 a las 14:54

Puede agregar una UIWindow personalizada en la parte inferior de la pantalla:

Cree una instancia de UIWindow con un marco (origen y tamaño) y configure su rootViewController en un UIViewController que contenga su UIImageView. Para mostrar la ventana, configure isHidden en false. Si no desea que la ventana principal se superponga con la ventana personalizada, disminuya la altura de la ventana principal por la altura de la ventana personalizada.

Puede hacer todo esto en application(_:didFinishLaunchingWithOptions:) en su AppDelegate.

Aquí hay un ejemplo rápido que utilicé con un banner publicitario:

window?.frame.size.height -= adBannerHeight
adWindow = UIWindow(frame: CGRect(x: 0, y: UIScreen.main.bounds.height - adBannerHeight, width: UIScreen.main.bounds.width, height: adBannerHeight))
adWindow?.rootViewController = AdViewController()
adWindow?.isHidden = false
0
Daniel 8 sep. 2018 a las 15:52