获取APP的Launch Image
2015-10-22 17:31
295 查看
启动图(LaunchImage)的管理其实在iOS开始中算比较简单的了 尤其是Xcode引入了
完全是傻瓜式的操作 但是有的时候我们还是需要在Launch Image上做文章
LaunchImage在APP初始化完之后会立即消失并显示APP的界面 但是有的时候我们不希望它这么快就消失(比如有的人希望有个过渡效果 有的人希望等某些设置或者数据加载完之后再消失) 这也很简单 我们只要自己把LaunchImage再显示出来并且置顶就OK了
比如下面这样
不过我们配置了那么多适用于不同屏幕分辨率的LaunchImage 如何获取适合于当前屏幕分辨率的LaunchImage呢?
普通的办法是 把所有LaunchImage加入到工程并根据屏幕分辨率来命名 比如(640_960.png 640_1136.png …) 然后在程序中用代码拼接出对应的文件名 并引用
但是这种办法比较原始 而且万一以后苹果又出了一些其他分辨率的设备 或者启动图发生变化的时候 又需要人工的修改工程配置 不太好 而且还需要多占一份资源(APP的容量又变大啦)
而stackflow上的Cherpak
Evgeny分享了一个更好的办法 直接读取NSBundle中的设置
即可获取当前适用的LaunchImage
我以上面的图为例写了个演示代码
这样就能轻松搞定LaunchImage了~
声明:本文来自http://adad184.com/2015/10/15/tips-access-current-launch-image/
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]; }]; |
声明:本文来自http://adad184.com/2015/10/15/tips-access-current-launch-image/
相关文章推荐
- android中asynctask的使用实例
- iOS block 个人理解
- iOS开发:深入理解GCD 第二篇(dispatch_group、dispatch_barrier、基于线程安全的多读单写)
- 为ios购买请求添加自定义数据
- android中实现如10000000转为10,000,000.00这样的数字格式
- android 判断字符串是否同时包含小写字母与数字
- android studio快捷键
- Fatal error: Using $this when not in object context in 解决方法
- 第一次混淆打包
- iOS中的沙盒路径
- 从AndroidStudio的启动参数开始,了解一下JVM的一些东西(内存使用,JIT等)
- Proguard mapping文件的理解及Decode 堆栈信息
- Android 多媒体播放器Creat过程
- iOS中设置导航栏标题的字体颜色和大小
- Week5-2Empirical/data driven approach to parsing
- 016.循环语句进行100以内素数求和
- Android加载网页WebView
- android中的后退键——onBackPressed()的使用
- 帝乙Android笔记之一
- IOS开发:iOS的xmppframework简介