像skype iOS应用程序的菜单一样制作动画效果

时间:2015-02-24 10:22:18

标签: ios objective-c core-animation uikit-dynamics

我试图在iPhone中创建类似skype底部菜单的动画。我尝试了很多方法来解决它,但无法配置准确的解决方案。 我试过了,

(1)CGPathAddLineToPoint
(2)CGPathAddArc
(3)CGPathAddArcToPoint
(4)[UIView animateWithDuration:5000 delay:500 usingSpringWithDamping:0.5 initialSpringVelocity:0.5 options:option animations:^{
        square.layer.cornerRadius = 25;
        square.layer.masksToBounds = YES;
    } completion:^(BOOL flag){
        square.layer.cornerRadius = 0;
        square.layer.masksToBounds = YES;
    }];

和一些UIKit Dynamic也是如此。不幸的是,他们都没有为我找到准确的解决方案。我面临的主要问题是CornerRadius围绕整个视图,我需要弯曲/弧形。方舟方法也没有提供所需的解决方案。

Skype中的动画以这种方式运作。

Working Demo

(1)首先用户点击右下角,

enter image description here

(2)然后菜单向上动画,弯曲(弯曲的外部)效果,

enter image description here

(3)与顶部边界碰撞后(我猜它是使用UIKit Dynamic并且顶部有一个不可见的边界),菜单显示一个反弹效果并再次显示一个弯曲的效果,但这个时间曲线在里面,

enter image description here

如果我使用正确的方法或我应该怎么做,请指导? 感谢

1 个答案:

答案 0 :(得分:1)

这是一篇关于如何创建此类动画的精美教程:http://holko.pl/2014/06/26/recreating-skypes-action-sheet-animation/

在本教程结束时,作者还包含了一个github地址,该地址托管了一个可以直接用于创建此类效果的可重用框架。

希望这有帮助。