Ich habe die führenden, nachfolgenden Einschränkungen einer Ansicht normalerweise festgelegt. Ich habe die Höhe auf statisch 325 festgelegt. Und für die untere Einschränkung habe ich 2 Einschränkungen festgelegt: 1. Die untere Einschränkung der Hauptansicht entspricht der unteren Einschränkung der Ansicht. 2. mit der unteren Einschränkung der Hauptansicht zur oberen Einschränkung der Ansicht. Jetzt zeige ich auf Benutzeraktion nur die Ansicht ausblenden mit Animation. Wenn die Ansicht auf dem Bildschirm angezeigt wird und die App im Hintergrund angezeigt wird, wird die Einschränkung der Ansicht automatisch geändert und die Ansicht wird ausgeblendet. Dieses Problem tritt nur bei iOS 13-Geräten auf.
Ich habe versucht, die Einschränkungen für viewWillAppear () zu aktualisieren, aber in iOS 13 wird viewWillAppear von ViewControllers auch nicht aufgerufen, wenn die App über den Hintergrund aktiviert wird. Ich denke auch nicht, dass dies eine gute Idee ist, um Einschränkungen zu aktualisieren.
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()
}
}
}
}
Ich möchte nicht, dass meine Einschränkungen geändert oder aktualisiert werden, wenn sich der App-Status von Vordergrund zu Hintergrund und umgekehrt ändert.
Bitte helfen Sie mir dabei.
TIA
.frame = ...
Anweisungen), dann sollte Ihr Code einwandfrei funktionieren. ViewDidLoad()
sollte nicht aufgerufen werden, wenn die App vom Hintergrund in den Vordergrund wechselt, es sei denn, auf diesem Ereignis wird ein anderer Code ausgeführt.
contentView
unter dem unteren Rand positionieren (also "außerhalb des Bildschirms") und dann animieren, um sie in die Ansicht zu verschieben ... Dann geht die App in den Hintergrund und Sie möchten, dass die Ansicht weiterhin angezeigt wird, wenn die App wieder in den Vordergrund tritt? Keine neue Animation?