iOS起動ページの表示時間の延長

1882 ワード

AppはトップページがWebViewの場合に遭遇することがあります.この場合、ページが大きすぎると、ロードに時間がかかります.ページアニメーションを起動した後、白い画面が表示される時間があります.携帯電話によって異なり、1 s程度かもしれませんが、ユーザーにとって体験は悪くなります.

メインスレッドのスリープを使用してLaunchImageの表示時間を延長できます

[NSThread sleepForTimeInterval:2.0];この方法では起動ページの表示時間を延長できますが、2.0 s以降はwebviewでUrlをロードする際に白画面の時間がかかり、問題をうまく解決できません.

起動ページをビューとして手動でwindowにロードし、数秒表示してからwindowから削除すると、偽乱真--^


ダイレクトコード
- (void)showInterimImage
{
    CGRect viewFrame = [UIScreen mainScreen].bounds;
    CGSize viewSize = viewFrame.size;
    //       ,   LaunchImage
    NSString *viewOrientation = @"Portrait";
    NSString *launchImageName = nil;
    NSArray *imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    for (NSDictionary *dict in imagesDict)
    {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
        {
            launchImageName = dict[@"UILaunchImageName"];
        }
    }
   //        
    if(launchImageName) {
        UIImage *image = [UIImage imageNamed:launchImageName inBundle:nil compatibleWithTraitCollection:nil];
        _interimView = [[UIImageView alloc] initWithFrame:viewFrame];
        _interimView.image = image;
        [[UIApplication sharedApplication].keyWindow addSubview:_interimView];
        [self performSelector:@selector(dismissInterimView) withObject:nil afterDelay:2.0];
    }
}

最後にビューを削除
- (void)dismissInterimView
{
    [UIView animateWithDuration:0.5 animations:^{
        _interimView.alpha = 0;
    } completion:^(BOOL finished) {
        [_interimView removeFromSuperview];
    }];
}

ここでは、ビューが周囲から真ん中に収縮するなど、アニメーションを追加することができます.グラデーションの効果は悪くありません.