动画UIView相对于一条边的大小和位置

时间:2016-02-26 07:00:40

标签: ios objective-c uiview uiviewanimation

我有一个视图,它在屏幕底部放置了一个小的弹出模式,以及一个全屏模式。在两者之间进行动画制作时,大小会在动画开始时立即改变。

例如,当从全屏模式更改为小模式时,我的视图的页脚从底部开始,在顶部附近快速捕捉,然后整个(现在缩小的)视图动画到它所属的位置。

相反,我希望我的页脚留在(大约)同一个地方。视图的底部应该只移动几个像素,顶部应该移动大部分。

我尝试过设置框架和中心/边界,但它们都具有相同的效果。我怎样才能顺利地制作动画?

下面,方法A和方法B都会产生相同的,丑陋的动画,无论方向如何(大 - >小/小 - >大)。

CGRect bounds = newFrame;
bounds.origin = CGPointZero;
CGPoint center = CGRectGetCenter(newFrame);
[UIView animateWithDuration:0.75
                      delay:0.0
     usingSpringWithDamping:0.7
      initialSpringVelocity:0.0
                    options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionAllowUserInteraction
                 animations:^{
                     // Method A
                     view.frame = newFrame;
                     // Method B
                     view.center = center;
                     view.bounds = bounds;
                 }
                 completion:completion];

0 个答案:

没有答案