Как Получить Задержку При Изменении Текста UILabel
У меня есть 3 пустых UILabels на экране, и я изменяю их текст программно. Я хочу иметь задержку в 1,5 и 2 секунды... Например, первый выскакивает, задержка 1 секунда, второй выскакивает, задержка 1,5 секунды, третий выскакивает, задержка 2 секунды.
Я уже написал строки кода, чтобы изменить текст, но все они появляются одновременно. sleep();
не работает должным образом.
load1.text = @"Reading fingerprint...";
load2.text = @"Fingerprint read...";
load3.text = @"Determining result...";
Это код, который я использую для изменения текста. Это происходит, когда я нажимаю a кнопка.
Заранее благодарю...
1 ответ:
Существует несколько подходов. Один из них должен использовать
dispatch_after
:// Show first now load1.text = @"Reading fingerprint..."; // Show second after 1 second int64_t delayInSeconds = 1.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ load2.text = @"Fingerprint read..."; }); // Show third after 2.5 seconds delayInSeconds = 2.5; popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ load3.text = @"Determining result..."; });
Конечно, кажется, что было бы лучше показывать обновленные метки после того, как каждый из этих шагов фактически завершен, а не искусственные задержки. Разве не так?