Ошибка анимации 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;
                          }
                 }];