Я створюю власний підклас NSLayoutConstraint, і мені потрібно знати, чи обмеження макета "s" constant
В даний час властивість анімується для внутрішньої обробки стану. Іншими словами, мені потрібно розрізняти:
{ //no animation
myLayoutConstraint.constant = 100;
}
і
{ //animated
myLayoutConstraint.constant = 100;
[UIView animateWithDuration:0.2 animations:^{
[self.myViewThatHasTheConstraintAttached layoutIfNeeded];
} completion:^(BOOL finished) {
[...]
}];
}
Так що я можу обробляти кутові кейси для отримання повідомлення в середині анімації. Чи можливо це?
Відповіді:
1 для відповіді № 1Єдиний спосіб зробити це - мати логічну форму скрізь, де ви хочете отримати доступ до цього, і зробити щось на зразок ...
{ //no animation
theView.animatingChange = NO;
myLayoutConstraint.constant = 100;
}
{ //animated
theView.animatingChange = YES;
myLayoutConstraint.constant = 100;
[UIView animateWithDuration:0.2 animations:^{
[self.myViewThatHasTheConstraintAttached layoutIfNeeded];
} completion:^(BOOL finished) {
[...]
theView.animatingChange = NO;
}];
}
Властивість у поданні негайно змінюється на"кінцеве" значення анімації. Під час анімації він не змінюється на всі проміжні значення. Просто анімований малюнок на екрані.