你如何让图像在 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如果您指的是 iOS 主屏幕中的图标,我认为这是不可能的。
当然,如果您指的是应用程序中的图标,您可以为所欲为。
【讨论】:
如果图标只是简单地移动、旋转或缩放(如摆动),那么 UIKit 提供了足够的功能供您完成。为每个图标创建一个 UIView(可能是 UIImageView)对象,并使用 UIView 的类方法animateWithDuration
在动画块中更改其 frame 属性。 Apple 的 iOS 视图编程指南的清单 4-1 和 4-2 中有一个示例。以上是关于你如何让图像在 iPhone 主屏幕上摇摆不定?的主要内容,如果未能解决你的问题,请参考以下文章
提示 iPhone 用户将用 Asp.Net MVC 开发的网页添加到主屏幕
如何在Android和iPhone上拍摄占据整个屏幕的图像?