0

我正在研究一个让物体从屏幕顶部落下的概念。对于这个例子,假设有 4 个对象:红色方块、蓝色方块、绿色方块、黄色方块。

我将所有这些对象放在界面构建器中,并与 .h 文件中给出的名称连接:IBObject UIImageView *greenSquare; 例如。

我能够很好地与“greenSquare”交互,让它从视图的顶部掉到底部并从视图中消失。现在我希望能够重新创建“greenRectangle”并让它再次下降。我不能只重置一个实例,因为在任何给定点,1 个或多个相同对象都会掉落。

最终结果将是 x 个任何颜色的正方形将显示和下降。

我确信我的工作流程是:

  • 设定时间挑选广场
  • 方位
  • 展示广场
  • 以 x 速率下降方块

任何朝着正确方向的推动都会很棒。谢谢大家!

4

3 回答 3

2

你为什么要为此使用 InterfaceBuilder - 切换到“仅代码”实现,你应该没问题。

1)创建图像

UIImage *green = [UIImage imageNamed:@"green.png"];
UIImageView *img = [[UIImageView alloc] initWithImage:green];
[view addSubview:img];

2)定位

img.center = CGPointMake(<RANDOM NUMBER>, -30);

3)开始动画
4)当它到达底部时,将其移除

[img removeFromSuperview];

5)再次将此img添加到顶部...

如果您想拥有多个这些绿色 img,您可以一次创建多个。如果只有一个就足够了,您可以在img每次动画到达底部时重复使用。

编辑

如果您想UIImageView从一个创建多个 s,UIImage请执行以下操作:

UIImage *img = [UIImage imageNamed:@"green"];

UIImageView *imgView1 = [[UIImageView alloc] initWithImage:img];
imgView1.center = CGPointMake(100, 100);
[self.view addSubview:imgView1];

UIImageView *imgView2 = [[UIImageView alloc] initWithImage:img];
imgView2.center = CGPointMake(100, 500);
[self.view addSubview:imgView2];
于 2012-04-08T07:40:08.267 回答
0

也许您应该考虑将矩形 y 位置设置回屏​​幕顶部,就在它消失在底部时。因此,您不必重新创建它并可以重复使用它。担

于 2012-04-08T07:33:57.987 回答
0

这是我所做的:

在我的 .h 文件中,我创建了对象实例:

UIImageView *yellowImage;
UIImageView *greenImage;
UIImageView *orangeImage;
UIImageView *redImage;

UIImage *yellow;
UIImage *green;
UIImage *orange;
UIImage *red;

然后我设置图像:

green = [UIImage imageNamed:@"greenball.png"];
yellow = [UIImage imageNamed:@"yellowball.png"];
orange = [UIImage imageNamed:@"orangeBall.png"];
red = [UIImage imageNamed:@"redball.png"];

我调用了一个方法并设置了一个计时器:

[NSTimer scheduledTimerWithTimeInterval:(0.5) target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

最后,在 onTimer 中,我创建了一个随机数,用于选择一个球并像这样创建它:

greenImage = [[UIImageView alloc] initWithImage:green];
greenImage.frame = CGRectMake(startX,0,43,43);
[self.view insertSubview:greenImage belowSubview:bottomBar];
于 2012-04-11T20:10:09.263 回答