2015-05-27 3 views
1

У меня есть требование показывать индикатор прогресса на экране заставки в моем приложении. Это должно работать от iOS 8+. Как показать индикатор прогресса gif на экране всплеска. Все идеи. Вы пытались достичь несколькими способами, как описано ниже.Показать изображение gif на заставке ios8

1.Использование опции экрана запуска, которая была введена в xcode6. но нет никакого связанного файла .m, чтобы настроить его, чтобы показать индикатор прогресса.

+0

Я попытался с помощью нового запуска экрана, который был предоставлен Xcode 6.Но не удалось. Я могу показать статическое изображение, но не изображение gif или индикатор прогресса. Требование заключается в том, что он должен работать так, как показывает приложение snapdeal на экране запуска. Индикатор загрузки. – Avilam

ответ

3

Вы можете использовать LaunchScreen.xib и добавить индикатор, но это будет отображаться только на короткое время.

Я бы сделал новый контроллер вида, например. SplashViewController, содержащий вашу анимацию прогресса (даже анимированные GIF-файлы, но я думаю, вам придется использовать uiwebview для этого) и запускать это при запуске. Таким образом, вы можете контролировать, как долго вы хотите его отображать.

И когда вы закончите показывать его, убейте его и запустите приложение в обычном режиме.

+0

вы можете предоставить пример фрагмента кода для этого. Вы уже пробовали это, но не удалось – Avilam

+0

Базовый пример ... Вы просто вызываете этот метод в файле didFinishLaunchingWithOptions, делаете то, что хотите (в моем случае я загружаю настройки с сервера) и когда вы закончили, переключитесь на главную или приложение или туда, куда вы хотите пойти. UIStoryboard * раскадровка = [UIStoryboard раскадровкаWithName: @ "StartFlow" bundle: nil]; SplashViewController * controller = (SplashViewController *) [mainStoryboard instantiateViewControllerWithIdentifier: @ "SplashViewController"]; UINavigationController * nvc = [[UINavigationController alloc] initWithRootViewController: controller]; self.window.rootViewController = nvc; – abavisg

0

Вы можете использовать последовательность изображений, чтобы показать свою анимацию, вот код:

NSMutableArray *images = [[NSMutableArray alloc] init]; 

    //don't forget to add your images to images array 

    animationImageView.animationImages = images; 
    animationImageView.animationDuration = 1.0; 
    //animationImageView.clipsToBounds = NO; 
    [self.view addSubview:animationImageView]; 
    [animationImageView startAnimating]; 
0

Gif изображения не играют себя в UIImageView вам нужно использовать категорию или что-то:

Это один должен ли я думать: https://github.com/mayoff/uiimage-from-animated-gif/

или если вы хотите как прогресс HUD вы можете использовать этот один: GiFHUD-Swift

EDIT: Кроме того, Giorgos прав, вы должны использовать новый контроллер просмотра или вы можете добавить UIImage непосредственно в окно для контроля продолжительности времени заставки. Я сделал это с помощью этого метода в одном из моего приложения:

- (void)showSplashWithDuration:(CGFloat)duration 
{ 
    // add splash screen subview ... 

    UIImage *image   = [UIImage imageNamed:@"splash.png"]; 
    UIImageView *splash  = [[UIImageView alloc] initWithImage:image]; 
    splash.frame   = self.window.bounds; 
    splash.autoresizingMask = UIViewAutoresizingNone; 
    [self.window addSubview:splash]; 


    // block thread, so splash will be displayed for duration ... 

    CGFloat fade_duration = (duration >= 0.5f) ? 0.5f : 0.0f; 
    [NSThread sleepForTimeInterval:duration - fade_duration]; 


    // animate fade out and remove splash from superview ... 

    [UIView animateWithDuration:fade_duration animations:^ { 
     splash.alpha = 0.0f; 
    } completion:^ (BOOL finished) { 
     [splash removeFromSuperview]; 
    }]; 
} 

& можно назвать в didFinishLaunchingWithOptions так:

[self showSplashWithDuration:3.0]; 
+0

Спасибо Ajay.Have попробовал this.added splash.png для моего проекта. Он показывает черный экран для указанной продолжительности 3.0. Не показывать изображение splash.png. – Avilam

+0

Я тестировал только сейчас, кажется, работает отлично @Avilam – Ajay

+0

По-прежнему сталкивается с той же проблемой. Было бы здорово, если бы вы могли опубликовать образец проекта в github и предоставить ссылку – Avilam

Смежные вопросы