我要求在我的应用中在启动画面上显示进度指示器。 这必须适用于iOS 8+。 如何在启动画面上显示进度指示器gif图像。任何想法。试图通过以下几种方式实现。
1.使用xcode6中引入的启动屏幕选项。但是stil没有关联的.m文件来自定义它以显示进度指示器。
答案 0 :(得分:3)
您可以使用LaunchScreen.xib并添加指标,但只会非常简短地显示。
我会创建一个新的视图控制器,例如SplashViewController,包含你的进度动画(甚至是动画GIF,但我认为你必须使用uiwebview)并在启动时启动它。 通过这种方式,您可以控制希望显示的时长。
当您完成显示后,将其杀死并正常启动您的应用。
答案 1 :(得分: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];
答案 2 :(得分:0)
Gif图像在UIImageView中无法播放,您需要使用类别或其他内容:
我认为应该这样做:https://github.com/mayoff/uiimage-from-animated-gif/
或者如果您希望将其作为进度点击,则可以使用以下内容:GiFHUD-Swift
编辑: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];