我该如何在UIView上制作4个UIImages闪烁或基于定时删除



我还没有或不知道创建这个项目的代码,但基本上它的工作原理就像一个Gauge meter,我有一个带背景的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分钟内将其逐个移除,直到没有条为止。

在屏幕上显示图像的是UIImageView(而不是UIImage,正如您的问题所暗示的那样)。如果你想从屏幕上删除其中一个,你可以执行以下操作之一:

[imageView removeFromSuperview];

imageView.hidden = YES;

以下是我建议的处理方法:

在界面生成器中设置4个图像视图。将图像拖动到项目中,并将图像视图设置为在试管中对齐。图像视图上有一个图像属性。输入每个图像的名称,图像就会显示出来。使图像视图的大小与其包含的图像相同,这样它就不会被缩放或拉伸。

然后,通过控制从图像视图拖动到视图控制器的标题中,为每个图像视图创建一个IBOutlets。将顶部的图像视图命名为imageView1,将下一个图像视图命名成imageView2,将下个图像视图名称命名为imageView 3,将底部图像视图名称为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];
}

最新更新