3

在 viewDidLoad 我在标签上显示一个文本

[label setText:@"hello"];

在某个事件之后,我将其隐藏起来。现在我想要一个条件来检查

if([label.text isEqualToString:@"hello"] is visible on screen for >= 30 seconds)
{
//some code......
}

请帮我做这个检查

4

3 回答 3

3

你在寻找这样的东西吗?

    {
     //your method.
     [label setText:@"hello"];
     [self performSelector:@selector(afterDelay) withObject:nil afterDelay:30];
    }

   -(void)afterDelay {
    [label setText:@""];
    }

以及您可以使用的条件:

   if(label.text.length == 0) {
   }
于 2013-02-18T10:39:14.870 回答
0

要了解您的文本何时在屏幕上显示 30 秒,您需要使用计时器。IO 的计时器类是NSTimer. 查看Apple 开发中心了解更多信息。

您可能希望使用该scheduleTimerWithInterval:target:selector:repeats方法并将其设置为不重复,并将时间间隔设置为 30 秒。

于 2013-02-18T10:40:17.440 回答
0

试试这个代码:

   if ([label.text isEqualToString:@"hello"]) {
            NSTimer * tm = [NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(hideLabel) userInfo:nil repeats:NO];
        }

    -(void)hideLabel {
          self.label.hidden = YES;
    }
于 2013-02-18T10:40:32.103 回答