Как анимировать изменения ограничений?
Я обновляю старое приложение с помощью AdBannerView и когда нет рекламы, он соскальзывает с экрана. Когда есть объявление, оно скользит по экрану. Основные вещи.
старый стиль, я установил кадр в блоке анимации.
Новый стиль, у меня есть IBOutlet к ограничению, которое определяет положение Y, в этом случае это расстояние от нижней части супервизора и изменение константы.
- (void)moveBannerOffScreen {
[UIView animateWithDuration:5
animations:^{
_addBannerDistanceFromBottomConstraint.constant = -32;
}];
bannerIsVisible = FALSE;
}
- (void)moveBannerOnScreen {
[UIView animateWithDuration:5
animations:^{
_addBannerDistanceFromBottomConstraint.constant = 0;
}];
bannerIsVisible = TRUE;
}
и баннер движется, точно так, как ожидалось, но нет анимация.
обновление: Я пересмотрел видео WWDC12"лучшие практики для освоения автоматической разметки", который охватывает анимации. В нем обсуждается, как обновить ограничения с помощью CoreAnimation.


Я пробовал со следующим кодом, но получаю точно такие же результаты.
- (void)moveBannerOffScreen {
_addBannerDistanceFromBottomConstraint.constant = -32;
[UIView animateWithDuration:2
animations:^{
[self.view setNeedsLayout];
}];
bannerIsVisible = FALSE;
}
- (void)moveBannerOnScreen {
_addBannerDistanceFromBottomConstraint.constant = 0;
[UIView animateWithDuration:2
animations:^{
[self.view setNeedsLayout];
}];
bannerIsVisible = TRUE;
}
на стороне записки, Я проверил много раз, и это выполняется в основном потоке.
Comments