如何使用设置.y和随机.x将这些图像放到屏幕上,并在smallapple1触及屏幕中间时让这些图像重新生成?
(我希望苹果有一个小小的差距,这就是为什么.y需要一个特定的数字)
IBOutlet UIImageView *smallapple1;
IBOutlet UIImageView *smallapple2;
IBOutlet UIImageView *smallapple3;
IBOutlet UIImageView *smallapple4;
我见过一些类似的问题,但答案不符合我目前的问题;)
我已经尝试过这段代码,但对于生成的许多苹果,我的角色很迟钝,而且苹果相互产生了。可以修复此代码的人吗?
-(void)dispatchSomeRaindrops
{
for (int i = 0; i < 5; i++) {
UIImageView *view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"smallapple.jpg"]];
CGFloat halfHeight = view.frame.size.height / 2;
CGFloat x = arc4random() % (int)self.view.frame.size.width;
view.center = CGPointMake(x, -halfHeight);
[self.view addSubview:view];
NSTimeInterval duration = 5 + arc4random() % 10;
[UIView animateWithDuration:duration delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
float endY = self.view.frame.size.height + halfHeight;
view.center = CGPointMake(x, endY);
} completion:^(BOOL finished) {
[view removeFromSuperview];
}];
}
}
(在Stackoverflow上找到类似问题的代码)
答案 0 :(得分:0)
你的问题是非常开放的,有点“请告诉我如何解决这个精心设计的问题。我不会给你完整的答案,但我会从正确的方向开始:< / p>
最简单的方法是使用UIView动画。看一下方法animateWithDuration:delay:options:animations:completion:
您可能想要线性动画选项。
您将代码传递到将触发另一个动画的完成块。
你想让smallApple1停在屏幕中间,还是说你想要当smallApple1到达屏幕中间时出现更多图像,然后smallApple1继续它在屏幕上的进展?
我会做一些工作来提出做你想做的事情的逻辑,但这种方法应该让你开始。