Comment afficher et / ou masquer une sous-vue en utilisant swift

J'ai donc créé un ViewControl dans mon storyboard qui a 3 sous-vues. Chacun représente une vue différente que je veux afficher en fonction de la ligne de table sélectionnée sur L'écran précédent (NavControl). Je commence par toutes les sous-vues cachées via l'attribut 'caché' de L'Inspecteur D'attributs en cours de vérification. Tous les objets dans chacune de ces vues ne sont pas cachés, mais sont cachés parce que la sous-vue elle-même est cachée (évidemment). Pensant que je pourrais utiliser l'attribut de balise que j'ai donné chacun des trois sous-Vues une balise (0, 1 et 2), mais ne peut pas comprendre comment l'utiliser non plus (juste au cas où cela serait utile pour me fournir une option de comment faire cela, je voulais le mentionner ici).

Alors, comment diable puis-je montrer puis Cacher l'une de ces sous-vues? Je ne veux pas passer par chaque objet dans une sous-vue et basculer sa propriété cachée à true / false j'ai l'impression que je devrais juste être capable de "montrer / cacher" toute la sous-vue. ainsi atteindre le même résultat, mais beaucoup plus succinctement.

Je ne trouve rien qui m'aidera via des recherches web ou des recherches stackoverflow.

Mon code est très simple. Je capture la ligne qui a été sélectionnée dans l'écran précédent et la passe à une variable sur l'écran de détails qui contient les sous-vues. Je sais que cela fonctionne parce que j'ai configuré println () sur les écrans de détails viewDidLoad fonction. Alors maintenant, tout ce que j'ai à faire est d'entrer dans chacune de ces conditions et de lui dire quelle sous-vue montrer et / ou cacher.

Merci j'apprécie toute cette aide des communautés! Je serais perdu sans ça.

21
demandé sur jammyman34 2015-01-16 03:08:45

5 réponses

Vous devez créer IBOutlet s pour chacune des trois sous-vues. Ensuite, vous pouvez afficher / masquer chacun d'eux directement à partir de ces références. Si vous masquez une vue, elle masquera automatiquement ses sous-vues.

16
répondu AdamPro13 2015-01-16 00:12:42

Utilisez ceci pour masquer une vue dans swift

viewVar.isHidden = true
48
répondu iHulk 2018-02-14 09:04:00

Si vous avez des balises pour chaque vue, vous pouvez les masquer et les afficher en utilisant:

Objectif C

Pour Cacher:

[[self.view viewWithTag:1] setHidden:YES];

Affichage:

[[self.view viewWithTag:1] setHidden:NO];

En Swift:

Cacher:

self.view.viewWithTag(1)?.hidden = true

Affichage:

self.view.viewWithTag(1)?.hidden = false

REMARQUE: remplacez 1 par la valeur de votre balise.

21
répondu Midhun MP 2015-01-16 00:26:40

Cependant, le fait que isHidden est une convention de nommage pour vérifier l'état et est une méthode getter mais malgré ce fait dans swift, nous l'utilisons comme propriété setter et getter

view.isHidden = true
10
répondu Amr Angry 2017-02-05 12:12:39

entrez la description de l'image ici

Vous pouvez facilement changer la constante de contrainte de taille de UIView à 0 sans ajouter la propriété IBOutlet de contrainte de taille. GoneVisible prend en charge iOS et est écrit en Swift.

Disparu.

view.gone()

・Visible.

view.visible()

- Lorsque vous définissez sur Gone, définissez la constante de contrainte d'Espace ensemble sur 0.

view.gone(spaces: [.trailing])

・Avec "gone", vous pouvez spécifier si elle est verticale ou horizontale. Il est utile lors de l'animation.

view.gone(axis: .vertical)
0
répondu AshvinGudaliya 2018-03-31 11:43:06