J'ai figuré tiré mes cheveux sur celui-ci. J'ai lu dans cet article "http://gregshackles.com/fluentlayout-2-5/" que FluentLayout supporte désormais l'édition/suppression de contraintes mais cela ne semble pas fonctionner de ma part. Mon scénario consiste à basculer la visibilité d'un champ de texte dans un UIView lorsqu'un bouton est cliqué.Comment modifier une contrainte en utilisant mvvmcross fluentLayout
J'ai essayé ce qui suit.
A. Modification de la contrainte de hauteur
var height = isVisible ? textfield.Height().EqualTo(0) : textfield.WithSameHeight(textfieldContainer).Multiplier(1/3);
textfieldContainer.Add(textfield);
textfieldContainer.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
textfieldContainer.AddConstraints(
textfield.WithSameLeft(textfieldContainer).Plus(12),
textfield.WithSameTop(textfieldContainer).Plus(24),
textfield.WithSameWidth(textfieldContainer),
height
);
B. Utilisation SetActive (false) - Essayé ce désespoir de cause
textfieldContainer.Add(textfield);
textfieldContainer.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
textfieldContainer.AddConstraints(
textfield.WithSameLeft(textfieldContainer).Plus(12).SetActive(!isVisible),
textfield.WithSameTop(textfieldContainer).Plus(24).SetActive(!isVisible),
textfield.WithSameWidth(textfieldContainer).SetActive(!isVisible),
textfield.WithSameHeight(textfieldContainer).WithMultiplier(1/4).SetActive(!isVisible)
);
Résultat attendu
Le textfield devrait être visible en fonction de la visibilité
de résultat réel
hauteur du champ de texte ne change jamais, il est donc toujours visible
A travaillé comme un charme. Merci beaucoup – MRainzo