1
votes

Dans iOS en utilisant Swift, comment créer un UIView déplaçable et flottant qui est toujours au-dessus de toute l'application

  • Je veux garder l'UIView toujours au-dessus (pas le haut de la ViewController) dans toute l'application comme le lecteur youtube ???
  • Je veux rendre cet UIView déplaçable à l'écran? entrez la description de l'image ici

4 commentaires

vous pouvez garder dans votre contrôleur de navigation ... ou concevoir votre application de telle manière chaque fois que le viewcontroller s'ouvre, il doit avoir une vue de dessus


élaborez un peu plus votre réponse. @ShauketSheikh


Reportez-vous à ceci: stackoverflow .com / questions / 38540091 /…


créer un contrôleur de base et hériter de ce contrôleur avec chaque contrôleur, dans le contrôleur de base ajouter une vue comme l'en-tête en haut


3 Réponses :


0
votes

vous pouvez utiliser le code suivant pour ajouter une vue à la fenêtre de votre application

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    // Do any additional setup after loading the view, typically from a nib.
    let newView = UIView()
    newView.frame = CGRect(x:0,y:UIApplication.shared.statusBarFrame.height, width: view.frame.size.width, height: 30)
    newView.backgroundColor = UIColor.red
    let label = UILabel()
    label.frame = newView.bounds
    label.text = "header"
    newView.addSubview(label)
    UIApplication.shared.keyWindow?.addSubview(newView)

    let bounds = self.navigationController!.navigationBar.bounds
    self.navigationController?.navigationBar.frame = CGRect(x: 0, y: newView.frame.size.height + newView.frame.origin.y, width: bounds.width, height: bounds.height  )
}

Veuillez vérifier et me faire savoir si cela fonctionne


2 commentaires

cela a fonctionné mais il y a un problème, lorsque je ferme le contrôleur de vue et le contrôleur de navigation, tout s'arrête. Cela signifie que j'ai perdu toutes les références du contrôleur de vue.


Essayez d'utiliser un seul contrôleur de navigation depuis AppDelegate



0
votes

Faites-en une sous-vue directe de UIWindow et donnez à sa couche une zPosition très élevée.


1 commentaires

élaborez un peu plus votre réponse et si vous avez un morceau de code, partagez-le avec moi. @mat



0
votes

UIApplication.shared.keyWindow? .addSubview (UIView)


0 commentaires