您好,我是动画新手,最近才开始玩弄它。我想要显示一个圆圈(圆环),它从一个小圆环变成一个大圆环,然后消失,然后重新开始这个过程,除了在不同的位置。
为此,我为同一枚戒指制作了 6 种不同尺寸的图像。以下代码是我如何完成的,但我不知道如何重复该过程(也就是它运行该方法但环的位置保持不变,我需要循环随机数生成器但不知道何时检查图像是否已停止)。如果这不是解决此问题的正确方法,请告诉我!附言当它到达最大阶段时,戒指看起来非常丑陋,不知道为什么。
谢谢
-(void) doWork
{
NSInteger number;
NSInteger number2;
NSLog (@"here");
number = (arc4random()%100)+1;
number2 = (arc4random()%100)+1;
NSLog (@" hello numer1: %d", number);
NSLog (@" hello numer2: %d", number2);
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(number, number2, 135, 135)];
imageView.animationImages= [NSArray arrayWithObjects:
[UIImage imageNamed:@"smallestRing.png"],
[UIImage imageNamed:@"smallRing.png"],
[UIImage imageNamed:@"mediumRing.png"],
[UIImage imageNamed:@"large2Ring.png"],
[UIImage imageNamed:@"largeRing.png"], nil];
imageView.animationDuration= 2.5;
imageView.animationRepeatCount= 0;
imageView.contentMode = UIViewContentModeScaleAspectFit;
[imageView startAnimating];
[self.view addSubview:imageView];
/*[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(doWork) userInfo:nil repeats:YES];*/
}
最佳答案
如果调整大小(或其他变换,如旋转或过渡)是您唯一需要的动画,您可以使用方法 +animateWithDuration(您可以找到描述 here)
它看起来像:
-(void) doWork
{
NSInteger number;
NSInteger number2;
NSLog (@"here");
number = (arc4random()%100)+1;
number2 = (arc4random()%100)+1;
NSLog (@" hello numer1: %d", number);
NSLog (@" hello numer2: %d", number2);
imageView = [[UIImageView alloc] initWithFrame:CGRectMake(number, number2, 135, 135)];
imageView.image = [UIImage imageNamed:@"largeRing.png"];
[self.view addSubview:imageView];
[self animate:imageView enlarge:YES];
}
-(void) animate:(UIImageView*)imageView enlarge:(BOOL)flag
{
if (flag)
{
// then animating is starting
// and imageView will appear in random point of view
int randomX = arc4random()%self.view.frame.size.width;
int randomY = arc4random()%self.view.frame.size.height;
imageView.center = CGPointMake(randomX, randomY);
}
double scale = flag ? 2 : 0.5;
[UIView animateWithDuration:5
animations:^{ imageView.transform = CGAffineTransformMakeScale(scale,scale); }
completion:^(BOOL finished){ [self animate:imageView: enlarge:!flag]; }];
}
关于objective-c - 在 View 的不同位置随机生成动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941002/