10

我是一个非常初学者的程序员,我正在尝试找到最简单的方法来做到这一点。我以前从未做过动画。我想尝试在我的应用程序中为图像设置动画,但遇到了一些问题。这是之前有人建议我使用的代码(来自另一个问题):

imageView.image = yourLastImage;  
// Do this first so that after the animation is complete the image view till show your last image.

NSArray * imageArray  = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"image1.png"],  
[UIImage imageNamed:@"image2.png"],
[UIImage imageNamed:@"image3.png"],                         
[UIImage imageNamed:@"image4.png"],
nil]; 

// Note: here you may instead want to use something like [UIImage imageWithContentsOfFile:[self localImagePath:NO]] instead depending upon your targeted iOS version.



UIImageView * animatedImageView = [[UIImageView alloc] initWithFrame:
    CGRectMake(100, 125, 150, 130)];
animatedImageView.animationImages = imageArray;
animatedImageView.animationDuration = 1.1;
    myAnimation.animationRepeatCount = 1;
animatedImageView.contentMode = UIViewContentModeBottomLeft;

[self.view addSubview:animatedImageView];
[animatedImageView startAnimating];

好吧,首先,这是否实用?我想为从屏幕中间到屏幕底部的东西设置动画。这是否意味着我必须有 500 张图像,每张图像相距 1 个像素?最佳像素间隔是多少,这样它看起来流畅、均匀且不需要大量工作?有没有比上述方式更好的动画制作方法?是否有一个程序可以帮助您制作以后可以添加到 Xcode 中的动画?

另外,有人可以解释一下上面的代码吗?我是动画新手,我真的不明白这意味着什么。

对不起,如果这是一个愚蠢的问题,我在开幕式上说我是初学者。感谢您提供的任何帮助!

4

3 回答 3

31

UIView对于大多数动画,您可以简单地更改动画块内视图的属性。类UIView文档列出了哪些属性是可动画的。

[UIView animateWithDuration:0.5f animations:^{
    aView.frame = CGRectOffset(aView.frame, 0, 250); 
}];

这是一个示例项目,演示如何在按下按钮时触发动画。您可以将此动画代码放在许多其他地方,因此除非您提供有关所需内容的更多详细信息,否则您关于将代码放在哪里的问题没有一个好的答案。

https://github.com/MaxGabriel/AnimationDemonstration

您采用的方法是为UIImageView. 我从来没有这样做过,但我的理解是这就像制作动画 GIF。对于诸如移动视图或淡出它们之类的事情,您需要使用上面显示的动画块方法。

于 2013-01-02T23:42:53.730 回答
1

在 iOS 中做动画很简单。

CGRect basketTopFrame = self.upperview.frame;
basketTopFrame.origin.y = -basketTopFrame.size.height;

CGRect basketBottomFrame = self.lowerview.frame;
basketBottomFrame.origin.y = self.view.bounds.size.height;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationDelay:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

self.upperview.frame = basketTopFrame;
self.lowerview.frame = basketBottomFrame;

[UIView commitAnimations];
于 2017-02-28T08:16:40.170 回答
0

以下代码对我有用,可以在打开键盘或其他东西时移动视图。

[UIView animateWithDuration:(timeYouWantAnimate - 0.3f) animations:^{
 [nameOfView setFrame:CGRectMake(0,spaceYouWantMove like -100, self.view.with, self.view.height)];
}

希望也能帮到你:D

于 2018-10-19T11:43:50.620 回答