2013-02-18 3 views
3

В viewDidLoad я показываю текст на этикеткеПроверка состояния помощь Xcode

[label setText:@"hello"]; 

и после определенного события я скрыть это. Теперь я хочу, чтобы проверить состояние

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

Пожалуйста, помогите мне сделать эту проверку

ответ

3

Вы ищете что-то вроде этого?

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

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

И условие, которое вы можете использовать:

if(label.text.length == 0) { 
    } 
+0

хотя и не совсем то, что я хотел, но получил намек от ваших answer..than кс :) – user2082760

0

Чтобы узнать, когда текст был на экране в течение 30 секунд, вам нужно будет использовать таймер. Класс таймера для IO - это NSTimer. Для получения дополнительной информации о нем обратитесь к Apple Dev Center.

Возможно, вы захотите использовать метод scheduleTimerWithInterval:target:selector:repeats и установить его не повторяющимся и интервал времени до 30 секунд.

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; 
    }