Je me demande s'il existe un moyen de récupérer par programme la contrainte de hauteur d'un UIView
spécifique et de changer sa valeur dans le code? J'ai une situation où j'ai plusieurs UIViews
avec quatre bords épinglés dans l'IB et des contraintes de hauteur ajoutées (IB se plaint si je ne l'ai pas fait), mais au milieu du programme, je devrais changer la hauteur de la UIViews
et provoquera une baisse de UIViews
dans la vue.
Je sais que je peux ctrl + glisser les contraintes de hauteur de chaque UIViews
et changer leurs valeurs dans le code, mais cela me obligerait à en câbler des dizaines. Je pense donc que ce n'est pas efficace et pas évolutif en quelque sorte.
Je me demande donc s'il existe un moyen de récupérer totalement les contraintes de hauteur d'une vue spécifique à travers du code et de le changer dynamiquement?
Merci!
Vous pouvez connecter cette contrainte spécifique à votre code à partir du générateur d'interface comme
Et NSLayoutConstraint
a une propriété constante à définir qui est votre valeur de pin constante.
Si vous ajoutez vos contraintes par programme, vous pouvez certainement bénéficier de la propriété identificateur dans la classe NSLayoutConstraint
. Définissez-les et parcourez-les pour obtenir cette contrainte identifired spécifique.
Comme le dit la documentation
extension NSLayoutConstraint {
/* For ease in debugging, name a constraint by setting its identifier, which will be printed in the constraint's description.
Identifiers starting with UI and NS are reserved by the system.
*/
@availability(iOS, introduced=7.0)
var identifier: String?
}
Ajoutez d'abord une contrainte de hauteur à votre .h
fichier:
//Add Outlet
IBOutlet NSLayoutConstraint *ViewHeightConstraint;
Ensuite, ajoutez le code ci-dessous à votre .m
fichier:
//Set Value From Here
ViewHeightConstraint.constant = 100;