zoukankan      html  css  js  c++  java
  • iOS--动画demo--Launch Image淡出效果

    Tips:获取APP的Launch Image

    启动图(LaunchImage)的管理其实在iOS开始中算比较简单的了 尤其是Xcode引入了xcassets之后 完全是傻瓜式的操作 但是有的时候我们还是需要在Launch Image上做文章

    LaunchImage在APP初始化完之后会立即消失并显示APP的界面 但是有的时候我们不希望它这么快就消失(比如有的人希望有个过渡效果 有的人希望等某些设置或者数据加载完之后再消失) 这也很简单 我们只要自己把LaunchImage再显示出来并且置顶就OK了 

    比如下面这样

    不过我们配置了那么多适用于不同屏幕分辨率的LaunchImage 如何获取适合于当前屏幕分辨率的LaunchImage呢?

    普通的办法是 把所有LaunchImage加入到工程并根据屏幕分辨率来命名 比如(640_960.png 640_1136.png …) 然后在程序中用代码拼接出对应的文件名 并引用

    但是这种办法比较原始 而且万一以后苹果又出了一些其他分辨率的设备 或者启动图发生变化的时候 又需要人工的修改工程配置 不太好 而且还需要多占一份资源(APP的容量又变大啦)

    而stackflow上的Cherpak Evgeny分享了一个更好的办法 直接读取NSBundle中的设置 即可获取当前适用的LaunchImage

    我以上面的图为例写了个演示代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    CGSize viewSize = self.window.bounds.size;
    NSString *viewOrientation = @"Portrait"; //横屏请设置成 @"Landscape"
    NSString *launchImage = 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"]])
    {
    launchImage = dict[@"UILaunchImageName"];
    }
    }

    UIImageView *launchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:launchImage]];
    launchView.frame = self.window.bounds;
    launchView.contentMode = UIViewContentModeScaleAspectFill;
    [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];

    }];

    这样就能轻松搞定LaunchImage了~

    出自:http://adad184.com/2015/10/15/tips-access-current-launch-image/

  • 相关阅读:
    awk-使用
    缓存使用
    一致性hash-java实现treemap版
    线程同步-CountDownLatch
    一致性hash算法
    linux-配置字符串-grep
    linux-查找命令-find
    linux-网络监控命令-netstat进阶
    linux-网络监控命令-netstat初级
    linux-单引号、双引号、反引号的区别。
  • 原文地址:https://www.cnblogs.com/howdoudo/p/4923865.html
Copyright © 2011-2022 走看看