我没有或者知道代码还没有能够创建这个项目,但基本上它会像量表一样工作,我有一个带背景的UIView和一个试管图像里面的试管图像,将有4个矩形图像堆叠在彼此之上
每个人都有自己的属性。最底部,顶部和中间以及最后一个顶部。
我的问题是,如何删除基于NSTimer等的顶部,直到最后一个Bar图像被留下?
我在考虑使用NSMutableArray以这种方式保存图像:
NSMutableArray *testTube = [[NSMutableArray alloc] initWithObjects:
[UIImage imageNamed:@"bar1"], // 0
[UIImage imageNamed:@"bar2"], // 1
[UIImage imageNamed:@"bar3"], // 2
[UIImage imageNamed:@"bar4"],nil];
但是在IBAction方法中,我做了一个:
[testTube removeObjectAtIndex: 3];
当我点击IBAction按钮测试它是否可以成功操作bar4.png
时,它没有删除它我哪里错了?并且对于计时器,假设在5分钟内逐个移除它们,直到没有留下任何条。
答案 0 :(得分:1)
在屏幕上显示图片的内容是UIImageView
(不是UIImage
,因为您的问题似乎暗示了这一点)。如果您要从屏幕中删除其中一个,则可以执行以下操作之一:
[imageView removeFromSuperview];
或
imageView.hidden = YES;
答案 1 :(得分:0)
以下是我建议处理它的方法:
在Interface Builder中设置4个图像视图。将图像拖动到项目中,并将图像视图设置为在试管中排成一行。图像视图上有图像属性。输入每个图像的名称,图像将显示出来。使图像视图与其包含的图像大小相同,因此不会缩放或拉伸。
然后通过控制从图像视图拖动到视图控制器的标题中,为每个图像视图创建一个IBOutlets。将顶部图像视图命名为imageView1,将下一个imageView2命名为下一个imageView3,将底部命名为imageView4。
在视图控制器的标题中定义NSArray属性imageViews。在viewDidLoad方法中,添加以下行:
self.imageViews = @[imageView1, imageView2, imageView3, imageView4];
还添加一个计数器实例变量。我们称之为imageIndex;
首次显示视图控制器时,将显示所有4个图像视图。
最后,您需要开始重复的NSTimer:
将当前索引处的图像视图上的隐藏属性设置为YES。
计时器方法看起来像这样:
- (void) hideAnImageView: (NSTimer *) theTimer;
{
self.imageViews[imageIndex].hidden = YES;
imageIndex++;
if (imageIndex + 1 > [self.imageViews count]
[theTimer invalidate];
}