У меня есть этот код для обновления ограничений для временного 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
ИСТИНЫ при запуске, он отлично работает, после того, когда я удаляю OP приложение и isOnepasswordAvailable
ложен хорошо работает снова, но когда я снова вхожу в isOnepasswordAvailable
, когда id TRUE, ограничения больше не работают, и у меня есть предупреждение в консоли. Знаете ли вы, почему?
Благодаря
Это хорошо, если я хочу обновить одни и те же ограничения, но если я хочу, чтобы изменить ограничения ? поэтому удалите его и добавьте еще один другой? – CrazyDev
Я понимаю приятеля :), но в вашем вопросе два ограничения, которые вы удаляли и добавляли, имели разницу только по их постоянному значению :), поэтому специально для этого случая я предложил обновить ограничение, а не добавлять и удалять их :) –
спасибо @Sandeep – CrazyDev