Ошибка анимации UIVisualEffectView
У меня проблема с расширением и сокращением UIEffectView. Он расширяется хорошо, но когда он сжимается, он мгновенно привязывается к своей конечной высоте и скользит в нужное положение, оставляя за собой слабый эффект вибрации. Heres gif, чтобы проиллюстрировать проблему.
http://i.imgur.com/Lh8q7m1.gif
![project layout]()
Это происходит в новой пустой настройке проекта:
![project layout]()
Вот код анимации:
- (IBAction)toggleEffects:(id)sender {
[self.view setNeedsLayout];
if(self._effectsHeight.constant == 50){
self._effectsHeight.constant = 500;
}else{
self._effectsHeight.constant = 50;
}
[UIView animateWithDuration:1.5f
animations:^{
[self.view layoutIfNeeded];
}];
}
Ответы
Ответ 1
Я думаю, что вам нужно установить код изменения размера внутри блока анимации. Постарайтесь следующим образом:
[UIView animateWithDuration:1.5f
animations:^{
if(self._effectsHeight.constant == 50){
self._effectsHeight.constant = 500;
}else{
self._effectsHeight.constant = 50;
}
}];