He establecido normalmente las restricciones iniciales y finales de una vista. He establecido su altura en estática 325. Y para la restricción inferior, he establecido 2 restricciones 1. con la restricción inferior de la vista principal a la restricción inferior de la vista. 2. con la restricción inferior de la vista principal a la restricción superior de la vista. Ahora, en la acción del usuario, solo muestro ocultar vista con animación. Entonces, cuando la vista se muestra en la pantalla y la aplicación pasa a segundo plano, la restricción de la vista se altera automáticamente y la vista se oculta. Este problema solo ocurre en dispositivos iOS 13.
Traté de actualizar sus restricciones en viewWillAppear () pero en iOS 13 tampoco se llama a viewWillAppear de ViewControllers cuando la aplicación se activa desde el fondo. Además, no creo que sea una buena idea actualizar las restricciones.
class ViewController: UIViewController {
@IBOutlet weak var topConstraint: NSLayoutConstraint!
@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
self.topConstraint.isActive = false
self.bottomConstraint.isActive = true
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}
}
}
No quiero que mis restricciones se cambien o actualicen cuando el estado de la aplicación cambie de primer plano a segundo plano y viceversa.
Por favor, ayúdame con lo mismo.
TIA
.frame = ...
declaraciones explícitas ), entonces su código debería funcionar bien. ViewDidLoad()
debería no ser llamado cuando las transiciones de aplicaciones de fondo a primer plano, a menos que tenga algún otro código que se ejecuta en ese evento.
contentView
colocarla debajo de la parte inferior (por lo que está "fuera de la pantalla"), luego desea animarla a la vista ... Luego, la aplicación pasa al fondo , y desea que la vista se siga mostrando cuando la aplicación vuelva al primer plano? No hay nueva animación?