Анимация смены кадра UIView не плавная, приводит к эффекту бодрости - PullRequest
8 голосов
/ 09 ноября 2011

Я пытаюсь анимировать смену фрейма UIView, где меняется и источник, и размер. Анимация не выглядит плавной и имеет эффект бодрости. Я использую следующий код, чтобы сделать это

[UIView
    animateWithDuration:0.5
    animations:^{
        self.view.frame = newFrame;
    }];

Кажется, что размер сначала изменяется очень быстро, а затем источник изменяется с заданной продолжительностью анимации, что в итоге приводит к эффекту оживления. Как сделать так, чтобы это выглядело гладко?

Ответы [ 2 ]

12 голосов
/ 10 ноября 2011

Вы можете попробовать изменить кривую анимации, возможно, попробовать линейную.

dispatch_async(dispatch_get_main_queue(), ^{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    self.view.frame = newFrame;
    [UIView commitAnimations];
});
3 голосов
/ 14 ноября 2011

При анимации смены кадров каждого из подпредставлений по отдельности делали магию.Теперь это оживляет очень плавно.Спасибо.

...