Как анимировать изменения ограничений?



Я обновляю старое приложение с помощью 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.



enter image description hereenter image description here



Я пробовал со следующим кодом, но получаю точно такие же результаты.



- (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;
}


на стороне записки, Я проверил много раз, и это выполняется в основном потоке.

604   0  

Comments

    Ничего не найдено.