iOS 启动画面 代码自定义
先来看一个可能会遇到的问题:
如果你已经删除了xcode为你的项目自动生成的LaunchScreen.storyboard,
然后你在测试你的app的时候发现,屏幕里出现了黑色的区域,如上图(画红线的区域):
那么,你需要重新设置一下xcode里面的一些选项,并且用代码来实现启动画面的自定义。
首先
箭头所指的地方,你需要更改为你存放启动画面的那个image set。
所以你需要创建一个启动画面的Image set。
新建的方法如下(点击项目里的.xcassets文件,在image set编辑页面右键):
然后,你就看到:
OK,按照规格,把启动画面拖进去吧。
接下来
修改xcode里的启动画面设置项,如图:
最后
如果使用默认的效果,后面的内容可以不采用了。
用代码来处理启动画面选择(只提供判断设备的逻辑代码):
- //宏定义如下:
- #pragma mark - 判断设备
- #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
- #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
- #define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)
- #define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
- #define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
- #define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
- #define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))
- #define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
- #define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
- #define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
- #define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
- #define IS_WIDTH_MORE_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH >= 667.0)
- //图片选择代码:
- NSString *imageName = @"";
- if (IS_IPHONE) {
- if (IS_IPHONE_5 ) {
- imageName = @"LaunchImage-700-568h";
- }else if (IS_IPHONE_6){
- imageName = @"LaunchImage-800-667h";
- }else if (IS_IPHONE_6P){
- imageName = @"LaunchImage-800-Portrait-736h";
- }
- else {
- imageName = @"LaunchImage-700";
- }
- }
- UIImage *image = [UIImage imageNamed:imageName];
附上imageName的参数大全:
- LaunchImage-568h@2x.png
- LaunchImage--568h@2x.png
- LaunchImage--Landscape@2x~ipad.png
- LaunchImage--Landscape~ipad.png
- LaunchImage--Portrait@2x~ipad.png
- LaunchImage--Portrait~ipad.png
- LaunchImage-@2x.png
- LaunchImage-Landscape@2x~ipad.png
- LaunchImage-Landscape~ipad.png
- LaunchImage-Portrait@2x~ipad.png
- LaunchImage-Portrait~ipad.png
- LaunchImage.png
- LaunchImage@2x.png
- LaunchImage--667h@2x.png (iPhone )
- LaunchImage--Portrait-736h@3x.png (iPhone Plus Portrait)
- LaunchImage--Landscape-736h@3x.png (iPhone Plus Landscape)
如果使用了UITabBarController,并使用了storyboard来设定启动画面,这里有一篇可参考的文章:http://www.tuicool.com/articles/fuUZ7zq
针对这篇参考文章提到的使用TabBarController的问题,我的解决办法是在Tab里拿到LaunchScreen.storyboard里的启动画面,然后在当前Tab里添加这个启动画面的View,再对这个启动画面的View设定动画。如果遇到显示异常,可以试着调整layer.zPosition来解决。
iOS 启动画面 代码自定义的更多相关文章
- Android & iOS 启动画面工具
感谢Aone!为我们开发了如此便捷的工具!! 以下为原文: Android & iOS 启动画面工具 下载:OneSplash.启动画面工具.Aone.20190318.zip 说明:这一个 ...
- IOS 启动画面和图标设置(适配IOS7 and Xcode5)
关于IOS程序设置启动画面以及图标的设备目前主要为:IPhone设备 和IPad设备 IPhone启动画面以及图标的设置 目前IPhone的分辨率为:320X480.640X960.640X1136. ...
- iOS 启动画面 App图标尺寸 项目上架必须Icon设置
1.1AppIcon图标尺寸如下: 说明:AppIcon (6张) AppStore Icon (1张)(png格式) AppStore Icon --- 1024x1024(必须) 1.2启动画 ...
- IOS xib和代码自定义UIView
https://www.jianshu.com/p/1bcc29653085 总结的比较好 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件. 下面就来说说自定义View的封装 ...
- 如何让ios启动画面停留更长时间
几种方法: 方法1:在AppDelegate.m里写上 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithO ...
- 10.3.1 iOS启动画面横屏是怎么回事?
产生这个问题的原因是编译旧版Delphi建立的项目,二种解决方法: 1.用 10.3.1 重建空工程,再把使用的单元文件重新加进来.这个操作有点麻烦,尤其对于使用单元多的文件,不过,有种方法,就是先把 ...
- iOS中为网站添加图标到主屏幕以及增加启动画面
虽然没有能力开发Native App,但还是可以利用iOS中Safari浏览器的特性小小的折腾一下,做一个伪Web App满足下小小的虚荣心的. 既然是在iOS中的Safari折腾的,那么代码中利用到 ...
- [Phonegap+Sencha Touch] 移动开发36 Phonegap/Cordova项目的图标和启动画面(splashscreen)配置
原文地址:http://blog.csdn.net/lovelyelfpop/article/details/40780111 Phonegap/Cordova项目中的config.xml文件.里面配 ...
- 【IOS】启动画面
总述: 两种方式,一种是使用系统自带的.按规则定义启动图片名称就可以,显示为1秒,要想延长时间,用[nsthread sleepForTimeInterval:5.0] ,还有一种就是自己定义ui ...
随机推荐
- NFS网络文件共享
NFS(Network File System) NFS在企业中的应用场景 企业集群架构中,NFS网络文件系统一般用来存储共享的视频.图片.附件等静态资源,一般把网站用户上传的文件都放到NFS共享里, ...
- Linux lsof命令 以及 恢复删除的文件
1.简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传 ...
- Matlab中double,im2double,mat2gray区别
转载:http://blog.sina.com.cn/s/blog_6c41e2f30101559d.html ****************假设某图像数据A(uint8格式)*********** ...
- thinkphp分页二,分装到funciton.php
function.php代码 <?php /* 全局分页 * $table 数据表名 * $order 排序 * $pagesize 每页显示N个 * $where 查询条件 * $rollPp ...
- Zabbix 监控 Nginx(四)
简介: 如何使用 Zabbix 监控 Nginx 状态 ? 1.获取 Nginx 状态( HTTP Stub Status ) [root@localhost ~]# /apps/product/ng ...
- 4Struts2标签库----青软S2SH(笔记)
这里弄错了,这一堆属性是<datetimepicker>标签的,不是<doubleselect>标签的 输出错误信息这个不错,挺方便的. 这个树形标签,也用了好多网络,分析如下 ...
- 再谈vim中多窗口的编辑
参考:http://blog.csdn.net/shuangde800/article/details/11430659 很好 鼠标在各个窗口间循环移动: ctrl+w+(小写的 hjkl), &qu ...
- sqilite学习
1,用代码插入数据 for (int i = 0; i < 100; i++) { NSString *nameStr = [NSString stringWithFormat:@ ...
- vijos1250 最勇敢的机器人
背景 Wind设计了很多机器人.但是它们都认为自己是最强的,于是,一场比赛开始了~ 描述 机器人们都想知道谁是最勇敢的,于是它们比赛搬运一些物品. 它们到了一个仓库,里面有n个物品,每个物品都有一个价 ...
- cf126b(kmp好题)
http://codeforces.com/contest/126/problem/B #include<bits/stdc++.h> using namespace std; const ...