我已經比喻地把我的頭髮拉出來了。我從這篇文章「http://gregshackles.com/fluentlayout-2-5/」中讀到,FluentLayout現在支持約束編輯/刪除,但它似乎不適用於我的結尾。我的場景是當按鈕被點擊時切換UIView中的文本框的可見性。如何修改使用mvvmcross的約束fluentLayout
我試過以下。
A.修改高度約束
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.使用SETACTIVE(假) - 嘗試了這一點
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)
);
預期結果的絕望
的textfield應該是可見的根據能見度
實際結果
的文本框的高度永遠不會改變,因此始終可見
工作就像一個魅力。非常感謝 – MRainzo