Я хочу, чтобы метка отображалась в течение 0,4 секунды, а затем скрывалась на 0,8 секунды - в бесконечном цикле.Как создать мигающую метку
Как я могу снять это?
Я хочу, чтобы метка отображалась в течение 0,4 секунды, а затем скрывалась на 0,8 секунды - в бесконечном цикле.Как создать мигающую метку
Как я могу снять это?
что-то вроде ниже.
В viewDidLoad:
NSTimer *silly = [NSTimer timerWithTimeInterval:0.4 target:self selector:@selector(question) userInfo:nil repeats:YES];
Функция
-(void)question {
if(label.isHidden){
label.hidden = false;
} else {
label.hidden = true;
}
}
Убедитесь, что вы есть UILabel, определенный в рамках этой функции и она должна работать. UNTESTED.
, если вы хотите разные интервалы времени, вы можете рассмотреть возможность передачи 'repeat: NO' и создания новых таймеров внутри этого метода' question' (если скрыто -> 0,4 секунды, если нет - > 0,8 секунды) – blub
Я бы сказал, чтобы использовать NSTimer. Вы можете сделать это следующим образом:
Произнесите метка myLabel
:
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
Вы должны создать метод, который будет вызван NSTimer
:
- (void)changeLabelState:(NSTimer *)timer
{
if(self.myLabel.hidden == TRUE)
{
self.myLabel.hidden = FALSE; //change comparassion to assing
[NSTimer scheduledTimerWithTimeInterval:0.4
target:self
selector:@selector(changeLabelState:)
userInfo:nil
repeats:NO];
}
else
{
self.myLabel.hidden = TRUE;
[NSTimer scheduledTimerWithTimeInterval:0.8
target:self
selector:@selector(changeLabelState:)
userInfo:nil
repeats:NO];
}
}
И инициализировать NSTimer
где-то так:
[NSTimer scheduledTimerWithTimeInterval:0.4
target:self
selector:@selector(changeLabelState:)
userInfo:nil
repeats:NO];
Обратите внимание, что вы могли бы сделать следующее: [Что вы пробовали]
[self performSelector:@selector(changeLabelState:) withObject:nil afterDelay:0.4];
- (void)changeLabelState:(NSTimer *)timer
{
if(self.myLabel.hidden == TRUE)
{
self.myLabel.hidden = FALSE;
[self performSelector:@selector(changeLabelState:) withObject:nil afterDelay:0.4];
}
else
{
self.myLabel.hidden = TRUE;
[self performSelector:@selector(changeLabelState:) withObject:nil afterDelay:0.8];
}
}
(http://whathaveyoutried.com) –
–