使用CoreAnimation进行变形

时间:2014-08-04 11:12:24

标签: ios objective-c uibutton core-animation morphing

我正在创建一个导航按钮。当用户按下它时,按钮的图像应该改变,反映它的状态(例如菜单打开/关闭)。我决定为此做一个变形动画动画。是否可以使用CoreAnimation实现?我需要使用什么动画类型?
我附上图片清楚地说明我想要的东西。此外,您可能会在“Pimp My Ride”节目中看到这些动画 Morphing sample

1 个答案:

答案 0 :(得分:1)

您可以使用UIImageView的animationImages属性,如下所示:

myImageView = [[UIImageView alloc] initWithFrame:myImageViewbounds];

//Add images which will be used for the animation using an array. These should exist in your project and bundle already.
myImageView.animationImages =  @[[UIImage imageNamed:@"1.png"], [UIImage imageNamed:@"2.png"],[UIImage imageNamed:@"3.png"], [UIImage imageNamed:@"4.png"],[UIImage imageNamed:@"5.png"]];

//Set the duration of the entire animation
myImageView.animationDuration = 0.5;

//Set the repeat count. If you don't set that value, by default will be a loop (infinite)
myImageView.animationRepeatCount = 1;

//Start the animation
[myImageView startAnimating];

为了确保像过渡一样平滑变形,您可以查看GPUImage,它有许多很棒的模糊过滤器。理想情况下,您应该能够在两个图像动画之间包装模糊动画,以实现您想要的效果。