web-dev-qa-db-fra.com

Comment envoyer un élément UIView à l'envers dans Swift

Donc, j'ai un bouton que j'ai ajouté dans main.Storyboard, avec un arrière-plan principal pour la vue, puis dans le fichier viewController.Swift, j'ai créé une forme de rectangle UIView que je veux asseoir derrière ce bouton (en tant que fond pour cela). 

Le problème, c'est que lorsque j'ai ajouté le rectangle UIView, il l'a toujours ajouté devant le bouton. J'ai donc fait des recherches en ligne et trouvé le code sendSubviewToBack. J'ai ajouté ceci dans, mais il l'envoie complètement derrière l'arrière-plan principal de la vue UIImage. 

Y a-t-il un moyen de simplement envoyer cette UIView derrière le bouton mais devant le fond UIImage?

func nextBarDisplayed() {

    let theHeight = self.view.frame.height
    nextBar.backgroundColor = UIColor(red: 7/255, green: 152/255, blue: 253/255, alpha: 0.5)
    nextBar.frame = CGRect(x: 0, y: theHeight - 50, width: self.view.frame.width, height: 50)
    self.view.insertSubview(nextBar, aboveSubview: myBackgroundView)

}
12
Nick89

De Documentation Apple :

bringSubviewToFront(_:)
sendSubviewToBack(_:)
removeFromSuperview()
insertSubview(_:atIndex:)
insertSubview(_:aboveSubview:)
insertSubview(_:belowSubview:)
exchangeSubviewAtIndex(_:withSubviewAtIndex:)

Vous pouvez amener votre barre à l'avant en utilisant:

view.bringSubviewToFront(nextBar) 

Vous envoyez votre vue à l’arrière du bar en utilisant:

nextBar.view.sendSubviewToBack(myView)
31
Icaro

Pour Swift 4:

self.view.sendSubview(toBack: myView)
1
xhinoda