0

我的应用程序需要显示一条临时消息,所以我自己创建了类似 android 的 Toast。它只适用于一个吐司。我正在使用 NSTimer 隐藏消息。如果我显示多个吐司,计时器就会成为问题。只有最后添加的 toast 会被隐藏,其他的不会被隐藏。我怎样才能隐藏所有的吐司?

代码:

删除功能:

-(void)removeToast
{
 NSLog(@"removed");
 [self.view removeFromSuperview];
}

定时器启动:

timer = [NSTimer scheduledTimerWithTimeInterval:(4.0f) 
                                         target:self  
                                       selector:@selector(xxxx)
                                       userInfo:nil repeats:NO];

我在上面的单独NSObject类中写了这个并创建了一个对象。我需要澄清一下如何同时运行两个 NSTimer 或跟踪所有NSObjects.

视图控制器中的对象创建是 @property(nonatomic,strong)Toast *toast;

4

1 回答 1

1

出于您的目的,无需将计时器的距离保留在 ivar 中。使用 userinfo: 参数在计时器触发时传递您要隐藏的视图,如下所示:

[NSTimer scheduledTimerWithTimeInterval:(4.0f) 
                                     target:self  
                                   selector:@selector(xxxx)
                                   userInfo:yourView repeats:NO];

然后在您的选择器中从 userInfo 检索视图并将其隐藏。你可以在这里找到一个工作示例,第 37 行。

于 2012-08-15T17:04:21.747 回答