你如何让图像在 iPhone 主屏幕上摇摆不定?

Posted

技术标签:

【中文标题】你如何让图像在 iPhone 主屏幕上摇摆不定?【英文标题】:How do you make images wobble like on the iPhone home screen? 【发布时间】:2011-02-12 19:29:19 【问题描述】:

我的应用程序中有许多图标,我希望以类似于您尝试从 iPhone 的主屏幕删除应用程序时所发生的方式为它们设置动画。你怎么能这样做?

此外,有没有办法让图标以类似于解锁 iPhone 时的方式在屏幕上显示动画?

【问题讨论】:

【参考方案1】:

如果你想让你的视图、图像等像主屏幕一样摆动,你可以这样做:

    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)

【讨论】:

我应该把这段代码放在 viewDidUnload() 方法或任何其他方法中,因为我真的不知道这个谢谢 你可以把它放在你需要动画开始的地方。例如,如果动画在视图显示时开始,您可以在 viewWillAppear: 方法中执行(不要忘记调用超类方法)。如果您希望 UIImage(或任何其他类的 UIView)摆动,那将是代码中指定的“视图”。 感谢您的快速回复,它也可以正常工作......但我正在寻找一些精细的动画,比如从小到全屏的屏幕,比如放大到缩小或一些对角线动画,因为我们正在做ppt演示..我希望你能得到我..如果你知道这件事请帮助我谢谢 在动画块中,您可以放置​​所需的动画效果,而不是变换。例如,您可以将 UIImageView 从小尺寸调整为全屏。将动画块之前的视图框架设置为初始大小,然后将新大小放置在 view.transform... 所在的动画块中。根据您的需要,您还可以使用 UIScrollView 来处理触摸缩放。【参考方案2】:

使用块(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)
    ];

【讨论】:

我认为可以添加两件事。 | UIViewAnimationOptionAllowUserInteraction 如果按钮是运行动画的视图的子级。 // 出于任何原因移除摆动动画 [self.view.layer removeAllAnimations];导入#import 【参考方案3】:

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

当然,如果您指的是应用程序中的图标,您可以为所欲为。

【讨论】:

如果图标只是简单地移动、旋转或缩放(如摆动),那么 UIKit 提供了足够的功能供您完成。为每个图标创建一个 UIView(可能是 UIImageView)对象,并使用 UIView 的类方法animateWithDuration 在动画块中更改其 frame 属性。 Apple 的 iOS 视图编程指南的清单 4-1 和 4-2 中有一个示例。

以上是关于你如何让图像在 iPhone 主屏幕上摇摆不定?的主要内容,如果未能解决你的问题,请参考以下文章

提示 iPhone 用户将用 Asp.Net MVC 开发的网页添加到主屏幕

如何在Android和iPhone上拍摄占据整个屏幕的图像?

为 iphone 主屏幕设置我的网站图标

如何在 3.5 英寸和 4 英寸 iPhone 屏幕上显示图像时如何居中?

试图显示图像数组,代码将iphone返回主屏幕

从 iPhone 主屏幕重新打开时,如何在 jQuery Mobile 应用程序上缓存并保留上次访问的页面?