web-dev-qa-db-fra.com

Comment puis-je insérer une sous-vue sous les autres sous-vues

toutes les personnes.

J'ai quelques étiquettes que je les dessine dans le fichier xib et j'ajoute une vue d'arrière-plan à l'aide de codes, mais la vue d'arrière-plan est à l'avant de ces étiquettes, donc je ne peux pas les voir. Donc, ma question est de savoir comment puis-je ajouter une vue d'arrière-plan sous ces étiquettes.

Merci d'avance.

38
jxdwinter

Si vous Google UIView vous vous retrouverez dans la documentation - IView Class Reference

Ensuite, vous devez consulter la liste des méthodes jusqu'à ce que vous trouviez quelque chose qui ressemble à cela, qui correspondra grosso modo à vos besoins, comme ces deux:

- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index

et

- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview

À ce stade, il vous suffit de lire les descriptions du comportement des méthodes et de choisir celle qui est la plus facile à implémenter pour votre conception. C'est vraiment bon pour votre propre apprentissage si vous essayez de trouver la réponse vous-même avant de poser une question

63
Paul.s

Vous pouvez utiliser la méthode insertSubview:atIndex:

[self.view insertSubview:backgroundView atIndex:0];
42
sch

Vous pouvez appeler cette méthode dans Swift 3

view.insertSubview(yourSubView, at: 0)

ou

view.sendSubview(toBack: yourSubView)
5
Kwaku Eshun

Dans IB, les sous-vues d'une vue sont répertoriées dans une hiérarchie sous cette vue. Les sous-vues qui apparaissent au-dessus de leurs frères et sœurs dans cette hiérarchie apparaîtront en dessous dans la vue rendue. Ainsi, dans l'exemple ci-dessous, le in99:99 AM l'étiquette apparaît sous le Sign In au moment de l'exécution.

Si votre arrière-plan n'est qu'un UIImageView, envisagez d'ajouter la vue à votre NIB, puis de définir son UIImage au moment de l'exécution. De cette façon, vous ne vous trompez pas. Aussi, ce que Paul a dit .

enter image description here

3
QED

Swift 3 et versions ultérieures.

view.insertSubview(theViewYouWantToAdd, at: 0)
1
Alfi

https://medium.com/Swift-programming/dynamic-layouts-in-Swift-b56cf8049b08

Utilisez VerticalLayout comme parent. c'est assez simple et efficace

0
rajeswari ratala