应用程序实现iPhone的缓动功能(示例代码)

时间:2009-08-04 21:43:43

标签: iphone

我正在寻找一个示例代码来实现iPhone中的缓动功能。我有一组图像通过UIImageView进行动画制作。

我想要做的是使用一些缓和功能使它们看起来像弹跳。

例如,在点击时,气球会通过曲线从之前的尺寸变大。

就像让我们说大小为50X50,它达到100X100但动画也变为120X120并回到100X100

TNX

1 个答案:

答案 0 :(得分:0)

这个家伙没有简单的方法:P

我也在寻找这一次,我找到了一个解决方法:

使用一系列动画:

//getting image
UIImageView *newImageView = [[UIImageView alloc] initWithImage:@"yourtargetimage.png"];
//Setting the initial size of image to 0.01 (invisible)
[newImageView setTransform:CGAffineTransformMakeScale(0.01, 0.01)];

[UIImageView beginAnimations:nil context:newImageView];
            [UIImageView setAnimationDuration:0.25];
            [UIImageView setAnimationDelegate:self];
            [UIImageView setAnimationDidStopSelector:@selector(bounceBackButton:finished:context:)];

            [UIImageView setAnimationDelay:0.2*count];
            CGAffineTransform transformGrow = CGAffineTransformMakeScale(1.2, 1.2);
            newImageView.transform = transformGrow;
            [UIView commitAnimations];


- (void)bounceBackButton:(NSString *)animationID finished:(NSNumber *)finished context:(UIImageView *)imagesHolder
{
    [UIImageView beginAnimations:nil context:imagesHolder];
    [UIImageView setAnimationDuration:0.15];
    [UIImageView setAnimationDelegate:self];
    CGAffineTransform transformBack = CGAffineTransformMakeScale(1.0, 1.0);
    imagesHolder.transform = transformBack;
    [UIView commitAnimations];
}

你需要设置你的初始动画状态,让hin去目标大小再加上一个bouce,然后回到1.0的状态;