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.
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.
Utilisez ceci pour masquer une vue dans swift
viewVar.isHidden = true
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.
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
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)