如何使用set .y和随机.x将这些图像放到屏幕上

时间:2014-02-22 22:35:46

标签: ios objective-c uiimageview

the apple fall should look somthing like this:

如何使用设置.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上找到类似问题的代码)

1 个答案:

答案 0 :(得分:0)

你的问题是非常开放的,有点“请告诉我如何解决这个精心设计的问题。我不会给你完整的答案,但我会从正确的方向开始:< / p>

最简单的方法是使用UIView动画。看一下方法animateWithDuration:delay:options:animations:completion:

您可能想要线性动画选项。

您将代码传递到将触发另一个动画的完成块。

你想让smallApple1停在屏幕中间,还是说你想要当smallApple1到达屏幕中间时出现更多图像,然后smallApple1继续它在屏幕上的进展?

我会做一些工作来提出做你想做的事情的逻辑,但这种方法应该让你开始。