私はUITextFiled
のiOS:アップデートの制約をプログラム
- (void)updateUIOnePassword {
NSLayoutConstraint *fullTextField = [NSLayoutConstraint constraintWithItem:self.passwordTextField attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.userIdTextField attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:0.0f];
NSLayoutConstraint *cutTextField = [NSLayoutConstraint constraintWithItem:self.passwordTextField attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.userIdTextField attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:-60.0f];
if ([self isOnepasswordAvailable]) {
self.onepasswordButton.alpha = 1.0f;
[self.view removeConstraint:fullTextField];
[self.view addConstraint:cutTextField];
} else {
self.onepasswordButton.alpha = 0.0f;
[self.view addConstraint:fullTextField];
[self.view updateConstraints];
}
[self.view setNeedsUpdateConstraints];
[self.view layoutIfNeeded];
}
の制約を更新するには、このコードを持っているisOnepasswordAvailable
が先頭でTRUEのとき、私はOPのアプリとisOnepasswordAvailable
を削除するだけでなく、再びFALSE作品になった後、それは、正常に動作しますしかし、私がisOnepasswordAvailable
に再度入力するとき、idがTRUEになると、制約はもううまく機能せず、私はconsolleにいくつかの警告を出します。 あなたはその理由を知っていますか?私は常に制約をIBOutletを持つことを好むものの
おかげで
私は同じ制約を更新したい場合、これは良いですが、私は制約を変更する場合に変更する必要がある場合は、あなたがそれ
[fullTextField setActive:NO];
必要はありません。 ?それを削除し、別の別のものを追加しますか? – CrazyDev
私はバディを理解しています:)しかし、あなたの質問では、削除して追加していた2つの制約は定数値にしか違いがありませんでした:)この場合、制約を追加したり削除したりするのをやめてください: –
ありがとう@Sandeep – CrazyDev