我正在研究一个会让物体从屏幕顶部掉下来的概念。这个例子可以说是4个物体:红色正方形,蓝色正方形,绿色正方形,黄色正方形。
我将所有这些对象放在界面构建器中并与.h文件中给出的名称连接:IBObject UIImageView * greenSquare;例如。
我能够与“greenSquare”精确互动并让它从视图顶部落到底部并从视图中消失。现在我希望能够重新创建“greenRectangle”并让它再次落下。我不能只重置那个实例,因为在任何给定的点上,同一个对象的1个或多个将会下降。
最终结果将是任何颜色的正方形的x数将显示和下降。
我确信我的工作流程是:
任何正确方向的推动都会很棒。谢谢大家!
答案 0 :(得分: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
创建多个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];
答案 1 :(得分:0)
也许您应该考虑将矩形y位置设置回屏幕顶部,就在它消失在底部时。所以你不必重新创建它并可以重用它。丹
答案 2 :(得分: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];