iOS启动页图片设置方式及错误的解决办法。

iOS启动页图片设置方式及错误的解决办法。,第1张

尺寸介绍:

640 * 960----4,4s

640 * 1136 ----5,5s,5c

750 * 1334 ----6

1242 * 2208---- 6 plus

这时候Xcode是不会报任何警告的,如果有警告说明你肯定有尺寸是放错了或者是图片本身就有问题

这是会d出两个选项让你选择,当然是选择刚刚我们创建好的launchimage,(在 *** 作了上述步骤后系统会自动在Asset里面创建一个启动图片容器,所以会有launchimage-2,后面可以在asset里面看到这个launchimage2,删除他就好了)

检查所有图片尺寸是否设置正确,尺寸没有设置够或者大小错误都会出现这个问题。

这种情况肯定是因为启动页还没有设置成功,他就一直会显示以前的启动页(无论是否删除了以前的启动页的图片或者重新安装过app),这时候可能就会误导你的解决方向,让你把问题放在以前是否哪儿设置错误,引起现在的启动页设置失败(bug),所以不用管它,直接检查目前这种方式设置的时候哪儿出了问题。

可以试着打开项目中launch. LaunchScreen.storyboard或者低版本为(LaunchScreen.xib)取消use as launch screen

 什么是启动画面(Splash Screen)?

对于一些新的开发人员,可能没有听说过启动画面,让我简单解释一下。启动画面在iOS Apps中比较常见,也包括一些桌面应用程序。就是你启动App的时候看到的第一个界面。通常,启动画面是覆盖整个屏幕的一张图片,在主屏幕装载完成后隐藏。下图显示了一些启动画面的示例:

启动画面的主要目的是让用户知道你的App正在装载,并且对用户介绍你的品牌。启动画面对哪些需要较长时间启动的Apps尤其重要。一般而言,启动画面是为了给用户更好的体验。

在你的App中添加启动画面

前面提到过,显示启动画面并不需要编写任何代码。iOS提供了一个内置的功能 – 启动图像。在用户打开App时自动显示该图像,在App启动完成之后该图像自动消失。你可以在Xcode中进行简单设置启动图像,Xcode就可以负责后续事情了。

准备你的启动画面

我们知道iPhone 4/4S支持更高分辨率(也就是所谓的视网膜显示器-Retina Display)。为了同时支持2中分辨率,我们需要准备2个版本的启动画面:

320 x 480 (for iPhone 2G / 3G / 3GS)

640 x 960 (for iPhone 4 / 4S)

为了简单一点,我这里演示如何为iPhone App添加启动画面,针对iPad App的 *** 作,请参考Apple的 iOS Human Interface Guideline文档 – 关于启动图像大小和命名规范。

启动图像必须为PNG格式。默认情况下,你可将低分辨率图像文件命名为 Default.png,对高分辨率的图像,用于Retina屏幕的(640*960分辨率)图像文件命名为 Default@2x.png,@2x是iOS中一种标准的分辨率修饰符。所有用于在Retina屏幕显示的图像都应采用 @2x 字符串。

你也可以不是有Default 作为启动图像文件名,使用其他你喜欢的文件名。启动图像文件定义在App的Info.plist文件中。以我们创建的Simple Table应用程序为例,在SimpleTable-Info.plist文件中,添加一个新的属性命名为 – Launch image,并指定你偏爱的文件名(如 MyLaunchImage)。

上述 *** 作指示iOS 使用 MyLaunchImage.png 和 MyLaunchImage@2x.png 文件作为启动画面。

你可以设计你自己的启动画面。基于测试的需要,你可以到这里下载启动画面。

在Xcode中添加你的启动图像

在准备好启动图像之后,回到Xcode,打开你的Xcode项目,我们继续使用Simple Table项目。右击 SimpleTable项目,选择 Add Files to SimpleTable,同时添加 Default.png 和 Default@2x.png 到项目中。

在你完成上述 *** 作之后,你会在项目中看到这两个文件,同时Xcode 自动识别文件作为启动图像。

开始测试!

再次运行App,这次在App运行的时候,你将会看到一个启动画面立即显示。因为在App启动的时候没有太多东西加载,因此启动画面仅显示1秒,并消失。

当前环境

OS: macOS High Sierra 10.13.5

Node: 8.11.3

Yarn: 1.7.0

npm: 5.6.0

Watchman: 4.9.0

Xcode: Xcode 9.4.1

react: 16.3.1 =>16.3.1

react-native: 0.55.4 =>0.55.4

react-native-splash-screen: 3.1.0 =>3.1.0

1:用Xcode打开项目, 找到Libraries目录,右键选择Add Files to [your project's name]

2:在{project}/node_modules/react-native-splash-screen/ios找到SplashScreen.xcodeproj文件,并添加

3:在XCode中,选择你的项目, 选择bilid Phases并将SplashScreen.xcodeproj/Products/libSplashScreen.a文件添加到Link Binary With Libraries中,拖过去即可

4:添加搜索路径:在项目 → Build Settings → Search Paths → Header Search Paths处添加一项为$(SRCROOT)/../node_modules/react-native-splash-screen/ios

1:在项目目录{prject}/android/下找到settings.gradle文件添加一下内容

2:在项目目录{prject}/android/app/下找到build.gradle文件添加compile project(':react-native-splash-screen')

3:找到项目目录{project}/android/app/src/main/java/com/app/下MainApplication.java文件,引入import org.devio.rn.splashscreen.SplashScreenReactPackage并添加new SplashScreenReactPackage()

1:找到项目目录{project}/ios/{project}/下AppDelegate.m文件,引入#import "SplashScreen.h"添加内容如下

2:在XCode中, 点击App/Images.xcassrts通过LaunchImage添加启动图片

3:在XCode中,选择你的项目, 选择General找到App Icons and Launch Images下的Launch Images Sourc选择你设置好的LaunchImage

4:如出现错误# unknown receiver 'SplashScreen'did you mean 'RNSplashScreen', 则改动源码以及AppDelegate.m文件如下:

        4.1.源码改动: 找到{project}/node_modules/react-native-splash-screen/ios文件夹下的RNSplashScreen.m文件,将其[SplashScreen show]修改为[RNSplashScreen show],如下图

  4.2:AppDelegate.m文件改动: 找到项目目录{project}/ios/{project}/下AppDelegate.m文件,将所有SplashScreen改为RNSplashScreen即可,如下图

4.3:重启尝试是否有其他问题,修改源码地址可查看我的 github 项目地址,更多问题请查看官方 issues

1:在项目目录{prject}/android/app/src/main/res/下创建layout文件夹

在layout文件夹下创建launch_screen.xml添加一下内容

2:将你的启动图改名为launch_screen.png并添加到{prject}/android/app/src/main/res/文件夹下相应的drawable文件夹中(根据需求配置相应大小的文件夹)

1.drawable-ldpi

2.drawable-mdpi

3.drawable-hdpi

4.drawable-xhdpi

5.drawable-xxhdpi

6.drawable-xxxhdpi

3:在{prject}/android/app/src/main/res/values/文件夹下修改名为添加一个名为primary_dark的属性并设置其颜,添加内容如下

4:如果您希望启动屏幕透明,打开{prject}/android/app/src/main/res/values/styles.xml并添加<item name="android:windowIsTranslucent">trueitem>到文件中

首先引入进行模块import SplashScreen from 'react-native-splash-screen'

使用SplashScreen.hide()方法将其关闭


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11353612.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存