如何使图像在iPhone主屏幕上晃动?

问题描述:

我在我的应用程序中有很多图标,我想以类似于当您尝试从iPhone主屏幕上删除应用程序时发生的情况对其进行动画处理。你怎么能这样做?如何使图像在iPhone主屏幕上晃动?

此外,有没有办法让图标在屏幕上以与您解锁iPhone时发生的情况类似的方式动画化?

如果你想使你的观点,图像等摆动,像主屏幕,你可以做这样的事情:

CGAffineTransform leftWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-15.0)); 
    CGAffineTransform rightWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(15.0)); 

    view.transform = leftWobble; // starting point 

    [UIView beginAnimations:@"wobble" context:view]; 
    [UIView setAnimationRepeatAutoreverses:YES]; 
    [UIView setAnimationRepeatCount:5]; // adjustable 
    [UIView setAnimationDuration:0.125]; 
    [UIView setAnimationDelegate:self]; 
    view.transform = rightWobble; // end here & auto-reverse 
    [UIView commitAnimations]; 

您还需要添加此定义:

#define RADIANS(degrees) ((degrees * M_PI)/180.0) 
+0

我应该在哪里应该在viewDidUnload()方法或任何其他的代码,因为我真的不知道这个谢谢 – Pooja 2011-02-12 20:15:45

如果你指的是iOS主屏幕上的图标,我不认为这是可能的。

当然,如果你的意思是你的应用程序中的图标,你可以做任何你想做的事情。

+0

是的,我想在动漫我的应用程序,但该怎么做我不知道 – Pooja 2011-02-12 19:36:10

+0

如果图标简单地移动,旋转或缩放(如摆动),那么UIKit为您提供了足够的功能。为每个图标制作一个UIView(可能是UIImageView)对象,并使用UIView的类方法animateWithDuration在动画块中更改其帧属性。一个例子是苹果公司的iOS编程指南的清单4-1和4-2。 – MHC 2011-02-12 19:55:37

与块(iOS 4以上),它看起来像:

#define RADIANS(degrees) ((degrees * M_PI)/180.0) 

    CGAffineTransform leftWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-2.0)); 
    CGAffineTransform rightWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(2.0)); 

    cell.transform = leftWobble; // starting point 
    cell.deleteButton.hidden = NO; 

    [UIView animateWithDuration:0.125 delay:0 options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) animations:^{ 
     cell.transform = rightWobble; 
    }completion:^(BOOL finished){ 
    }];