Ios UIView的动画帧更改不平滑,导致反弹效果

Ios UIView的动画帧更改不平滑,导致反弹效果,ios,animation,uiview,frame,Ios,Animation,Uiview,Frame,我正在尝试为原点和大小都发生变化的UIView的帧变化设置动画。动画看起来不平滑,并具有反弹效果。我使用下面的代码来实现这一点 [UIView animateWithDuration:0.5 animations:^{ self.view.frame = newFrame; }]; 似乎大小首先变化非常快,然后原点随着动画的指定持续时间变化,最终产生反弹效果。如何使其看起来平滑?您可以尝试更改动画曲线,或者尝试线性曲线 dispatch_async(di

我正在尝试为原点和大小都发生变化的UIView的帧变化设置动画。动画看起来不平滑,并具有反弹效果。我使用下面的代码来实现这一点

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

似乎大小首先变化非常快,然后原点随着动画的指定持续时间变化,最终产生反弹效果。如何使其看起来平滑?

您可以尝试更改动画曲线,或者尝试线性曲线

dispatch_async(dispatch_get_main_queue(), ^{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    self.view.frame = newFrame;
    [UIView commitAnimations];
});

在分别设置每个子视图的帧更改动画时,实现了神奇的效果。现在它的动画非常流畅。谢谢。

我已经试过使用UIViewAnimationCurveLinear,但没用。大小立即更改,然后位置更改的动画开始。您是否尝试过使用整个代码块?我刚刚试过——尺寸和原点都能顺利地同时进行动画制作,现在就可以了。我必须单独设置所有子视图的动画,否则会产生这种反弹效果。谢谢。这不会改变self.view的大小。它只会移动它。