Как отложить Default.png?

Как я могу отложить загрузку приложения, чтобы показывать заставку дольше?

6 ответов

Решение

Вы должны позволить приложению запускаться как обычно, а затем на первом появившемся изображении должно быть то же изображение, что и на заставке. Запустите таймер, а затем за несколько секунд замените это представление на настоящее представление корня приложения.

Намеренная задержка фактического запуска приложения - это большое нет-нет.

ОБНОВЛЕНИЕ: Нет, серьезно, не делай этого!

Или с помощью функции C

sleep(9);

Помещение этого в applicationDidFinishLaunching: заставит вашу программу приостановиться на 9 секунд, также может быть введено любое другое целое число.

РЕДАКТИРОВАТЬ: я многому научился в прошлом году. Не делай этого. Причина в том, что трамплин автоматически остановит запуск приложения, если это займет слишком много времени. Это время плохо документировано, поэтому даже одна секунда может привести к сбою приложения.

Этот вопрос похож: заставка как тап тап месть 3

По сути, в вашем приложении DidFinishLaunching: добавьте представление изображения поверх других представлений, содержащих ваш Default.png.

Посмотрите выше обсуждение того, почему вы, вероятно, не должны откладывать загрузку своего приложения таким образом. Но если у вас есть сценарий, в котором сон на короткое время предпочтительнее, чем издержки на выключение представления, используйте sleepForTimeIntervale из NSThread вместо sleep(). Это более дружественно к фреймворку, и вы имеете более детальный контроль над временем сна:

[NSThread sleepForTimeInterval:0.75]

У меня была ситуация, когда клиент должен был продемонстрировать образ запуска. Итак, это было мое решение..

- (void)applicationDidBecomeActive:(UIApplication *)application

{

UIImageView *defaultImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default@2x.png"]];
[self.window addSubview:defaultImageView];
sleep(2);
[defaultImageView removeFromSuperview];
[defaultImageView release];
/*
 Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
 */

}

Вы можете использовать этот метод сна, чтобы получить этот результат "

sleepForTimeInterval

", Если вы хотите получить время запуска, сделайте так:

- (void) applicationDidFinishLaunching:(UIApplication*)application
{
   [NSThread sleepForTimeInterval:8.0];
}

Это задержит запуск на 8 секунд

Предупреждение: Но это не рекомендуется Apple, так как он будет сторожем в течение длительного времени для загрузки вашего приложения, он может убить ваше приложение. Но если вам нужно получить какой-то конкретный снимок экрана или для внутреннего использования, вы можете использовать его для решения, но не для отправки в приложение.

Другие вопросы по тегам