美文网首页
iOS开发_启动页动画

iOS开发_启动页动画

作者: iOS_PM_WEB_尛鹏 | 来源:发表于2018-07-12 17:36 被阅读0次

    【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!

    1.应用场景:

    很多时候我们需要利用启动页做一些动画处理,这里介绍一种简单的易于实现的过渡动画;

    2.实现目标:

    Attention:复杂的动画不是启动页能够处理的,而是以假乱真用启动页做第一帧衍生出其他的比较炫彩的动画,原理如此,实现很简单就不过多介绍了。
    本篇主要讲述的是通过直接获取启动页来设置一些简单过渡动画

    3.代码说明:

    /**传统的方式,需要根据各种机型的尺寸去处理不同的图片,
    该方式在每每有新机型出现的时候,弊端就及其明显,
    这里主要借鉴了Stack Overflow上的一篇文章
    (http://stackoverflow.com/users/1320010/cherpak-evgeny),
    通过获取LaunchImage来通配性的加上简易的过渡动画*/
    
    //获取窗口尺寸
    CGSize viewSize = self.window.bounds.size;
    //默认应用为竖屏
    //横屏请设置成 @"Landscape"
    NSString *viewOrientation = @"Portrait";    
    NSString *launchImageName = nil;
    //获取LaunchImage的信息数组
    NSArray *launchimagesArr = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    //快速遍历包含启动页信息的数组
    for (NSDictionary *dict in launchimagesArr)
    {
    //拿到启动页的图片尺寸大小
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        //图片尺寸与窗口尺寸一致并且方向关键信息也一致时
        if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
        {
    //满足上述条件时,持有下此时的启动图片名称
            launchImageName = dict[@"UILaunchImageName"];
        }
    }
    
    //实例一个跟启动页一样的伪启动页launchView
    UIImageView *launchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:launchImageName];
    launchView.frame = self.window.bounds;
    launchView.contentMode = UIViewContentModeScaleAspectFill;
    //将其加载Window上
    [self.window addSubview:launchView];
    
    //设置动画将伪启动页逐渐透明和移除,实现启动页渐渐消失的简易过渡动画
    [UIView animateWithDuration:2.0f
                          delay:0.0f
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^{
                         //动画效果
                         launchView.alpha = 0.0f;
                         launchView.layer.transform = CATransform3DScale(CATransform3DIdentity, 1.2, 1.2, 1);
                         
                     }
                     completion:^(BOOL finished) {
                         //动画效果完成后,移除伪启动页
                         [launchView removeFromSuperview];
                     }];
    

    相关文章

      网友评论

          本文标题:iOS开发_启动页动画

          本文链接:https://www.haomeiwen.com/subject/evprpftx.html