iOS 启动画面 代码自定义

时间:2022-09-03 15:51:01

先来看一个可能会遇到的问题:

iOS 启动画面 代码自定义

如果你已经删除了xcode为你的项目自动生成的LaunchScreen.storyboard,

然后你在测试你的app的时候发现,屏幕里出现了黑色的区域,如上图(画红线的区域):

那么,你需要重新设置一下xcode里面的一些选项,并且用代码来实现启动画面的自定义。


首先

iOS 启动画面 代码自定义

箭头所指的地方,你需要更改为你存放启动画面的那个image set。

所以你需要创建一个启动画面的Image set。

新建的方法如下(点击项目里的.xcassets文件,在image set编辑页面右键):

iOS 启动画面 代码自定义

然后,你就看到:

iOS 启动画面 代码自定义

OK,按照规格,把启动画面拖进去吧。


接下来

修改xcode里的启动画面设置项,如图:

iOS 启动画面 代码自定义


最后

如果使用默认的效果,后面的内容可以不采用了。

用代码来处理启动画面选择(只提供判断设备的逻辑代码):

//宏定义如下:

#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 启动画面 代码自定义的更多相关文章

  1. Android &amp&semi; iOS 启动画面工具

    感谢Aone!为我们开发了如此便捷的工具!! 以下为原文:  Android & iOS 启动画面工具 下载:OneSplash.启动画面工具.Aone.20190318.zip 说明:这一个 ...

  2. IOS 启动画面和图标设置&lpar;适配IOS7 and Xcode5&rpar;

    关于IOS程序设置启动画面以及图标的设备目前主要为:IPhone设备 和IPad设备 IPhone启动画面以及图标的设置 目前IPhone的分辨率为:320X480.640X960.640X1136. ...

  3. iOS 启动画面 App图标尺寸 项目上架必须Icon设置

    1.1AppIcon图标尺寸如下: 说明:AppIcon (6张) AppStore Icon (1张)(png格式) AppStore Icon --- 1024x1024(必须)   1.2启动画 ...

  4. IOS xib和代码自定义UIView

    https://www.jianshu.com/p/1bcc29653085 总结的比较好 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件. 下面就来说说自定义View的封装 ...

  5. 如何让ios启动画面停留更长时间

    几种方法: 方法1:在AppDelegate.m里写上 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithO ...

  6. 10&period;3&period;1 iOS启动画面横屏是怎么回事?

    产生这个问题的原因是编译旧版Delphi建立的项目,二种解决方法: 1.用 10.3.1 重建空工程,再把使用的单元文件重新加进来.这个操作有点麻烦,尤其对于使用单元多的文件,不过,有种方法,就是先把 ...

  7. iOS中为网站添加图标到主屏幕以及增加启动画面

    虽然没有能力开发Native App,但还是可以利用iOS中Safari浏览器的特性小小的折腾一下,做一个伪Web App满足下小小的虚荣心的. 既然是在iOS中的Safari折腾的,那么代码中利用到 ...

  8. &lbrack;Phonegap&plus;Sencha Touch&rsqb; 移动开发36 Phonegap&sol;Cordova项目的图标和启动画面&lpar;splashscreen&rpar;配置

    原文地址:http://blog.csdn.net/lovelyelfpop/article/details/40780111 Phonegap/Cordova项目中的config.xml文件.里面配 ...

  9. 【IOS】启动画面

    总述: 两种方式,一种是使用系统自带的.按规则定义启动图片名称就可以,显示为1秒,要想延长时间,用[nsthread ​ sleepForTimeInterval:5.0] ,还有一种就是自己定义ui ...

随机推荐

  1. 22章、Java集合框架习题

    1.描述Java集合框架.列出接口.便利抽象类和具体类. Java集合框架支持2种容器:(1) 集合(Collection),存储元素集合 (2)图(Map),存储键值对.

  2. Ant学习---第三节:使用Ant实现一个最小的项目编译

    1.编译 .java 文件,生成 .jar 包,代码如下: <?xml version="1.0" encoding="UTF-8"?> <p ...

  3. build&period;gradle

    1.将Eclipse项目导入到Android studio 中 很多点9图出现问题解决方法: 在build.gradle里添加以下两句: aaptOptions.cruncherEnabled = f ...

  4. JavaScript初学者必看&OpenCurlyDoubleQuote;this”

    译者按: JavaScript的this和Java等面向对象语言中的this大不一样,bind().call()和apply()函数更是将this的灵活度进一步延伸. 原文: JavaScript: ...

  5. linux搭建PHP开发环境

    因为PHP是一门易于上手的开发语言,所以现在越来越多的初创公司选择PHP作为前期项目的主要开发语言. 工欲善其事,必先利其器! 现在我们就从最基本的环境搭建开始,PHP环境的搭建是非常简单的: 环境: ...

  6. Intersection of Two Linked Lists&lpar;LIST-2 POINTER&rpar;

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...

  7. spring中获取applicationContext&lpar;2&rpar;

    前几天写web项目的时候,用到了spring mvc. 但是又写bean.我要在代码里面生成,而这个bean里面,又有一些属性是通过spring注入的. 所以,只能通过ApplicationConte ...

  8. Spring学习手札(一)

    Spring能做什么 1. 能根据配置文件创建及组装对象之间的依赖关系: 2. 面向切面编程,能帮助我们无耦合的实现日志记录,性能统计,安全控制等: 3. 提供第三方数据访问框架(如Hibernate ...

  9. numpy 矩阵操作

    numpy 对矩阵对角线.上三角.下三角以及它们所在位置索引的提取 import numpy as np a = np.random.randint(0,10,[5,5]) print(a) # c ...

  10. Linux 共享库(动态库)

    Linux 系统上有两类根本不同的 Linux 可执行程序.第一类是静态链接的可执行程序.静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”.因为这一原因,静态可执行程序不依赖任何外 ...