iOS 启动页多语言

iOS 启动页多语言

个人网站: Colin’s Nest 转载请注明出处。

iOS开发交流群: 184226705. 欢迎加入~


启动页适配多语言, 想必很多 App 都有类似的需求。但是之前尝试过程中, 发现 “多语言” 的那几种实现方式, 在欢迎页上都不适应, 直到遇到了 UILaunchImages ~ 下文将详细描述如何实现启动页多语言。

传统多语言设置

说起多语言, 我们无非这样实现:

  1. 为 App 添加多语言支持。
  2. 添加对应的配置, 资源。 比如:

    文本:

    图片:

  3. 使用对应资源, 比如:
    label.text = NSLocalizedString(@"多语言", nil);

再麻烦一点, 就是xib, storyboard的多语言的。 但是原理一样, 这样的方式都能实现多语言支持。So, 就是这么简单~

然而, 启动页貌似不吃这套 ,,,

启动页设置

先说说我们如何设置启动页吧。

Assets.xcassets 这玩意引入之前, 我们是对启动页图片按规范命名, 比如 Default, -568h, @2x, @3x 之类的, 让系统帮助我们自动判断对应的启动页图片。

Assets.xcassets 之后, 我们都了一种选择, 可以直接拖拽图片到 LaunchImage 中, 并且图片命名也没那么多要求。

再之后, 多了 LaunchScreen.storyboard , 意味着我们有了更多的选择, 可以做更多的事情, 把它当做一个xib, 拖拽相关控件上去就好~

方式很多, 是否意味着实现多语言的办法也很多 ?

然而并不是,,

不论是对图片 进行多语言, 还是 LaunchScreen.storyboard 多语言, 发现启动页始终没有跟着系统语言变, 血崩..

当然, 办法并不是没有, 只是没找到对的而已~ 下面介绍如何通过UILaunchImages 实现启动页多语言。

PS: 感觉 LaunchScreen.storyboard 是能做到多语言支持的, 难道是我实现过程中有问题 ?

UILaunchImages

先看一下官方文档:

UILaunchImages (Array - iOS) Explicitly specifies the launch images to use for the app. This key contains an array of dictionaries. Each dictionary contains detailed information about a single launch image and how it is used. Xcode fills in the value of each dictionary based on information you provide in your project settings.

显然, 我们可以通过设置 UILaunchImages 来配置启动图片。

至于 UILaunchImages 的几个 Key , 简单描述如下:

  • UILaunchImageName (required) 启动页资源名称
  • UILaunchImageMinimumOSVersion(required) 启动页支持的最低版本
  • UILaunchImageSize 启动页尺寸
  • UILaunchImageOrientation 启动页方向

    ?

代表什么, 都比较简单, 具体可以参考官方文档~ [ UILaunchImages ]

用这种方式配置启动页也十分简单, 具体步骤:

  1. 取消启动页使用的 Asset Catalog

  2. 在Info.plist 中添加UILaunchImages项
    <key>UILaunchImages</key>
           <array>
               <dict>
                   <key>UILaunchImageName</key>
                   <string>LaunchImage</string>
                   <key>UILaunchImageMinimumOSVersion</key>
                   <string>7.0</string>
                   <key>UILaunchImageSize</key>
                   <string>{320, 480}</string>
                   <key>UILaunchImageOrientation</key>
                   <string>Portrait</string>
               </dict>
               <dict>
                   <key>UILaunchImageName</key>
                   <string>LaunchImage-568h</string>
                   <key>UILaunchImageMinimumOSVersion</key>
                   <string>7.0</string>
                   <key>UILaunchImageSize</key>
                   <string>{320, 568}</string>
                   <key>UILaunchImageOrientation</key>
                   <string>Portrait</string>
               </dict>
               <dict>
                   <key>UILaunchImageName</key>
                   <string>LaunchImage-667h</string>
                   <key>UILaunchImageMinimumOSVersion</key>
                   <string>8.0</string>
                   <key>UILaunchImageSize</key>
                   <string>{375, 667}</string>
                   <key>UILaunchImageOrientation</key>
                   <string>Portrait</string>
               </dict>
               <dict>
                   <key>UILaunchImageName</key>
                   <string>LaunchImage-736h</string>
                   <key>UILaunchImageMinimumOSVersion</key>
                   <string>8.0</string>
                   <key>UILaunchImageSize</key>
                   <string>{414, 736}</string>
                   <key>UILaunchImageOrientation</key>
                   <string>Portrait</string>
               </dict>
           </array>

  3. 添加对应的启动页资源

    ?

如此, 即可完成 启动页 多语言的适配, 不信你就试试呗~

PS: 这里, 说明一点。 启动页只会保留一份, 也就是说, 你第一次加载完以后, 切换了语言, 再重新打开App, 它的启动页不会跟着更新的。 这也符合苹果的用户交互指引。

如果你想要动态修改启动页面图LaunchImage, 抱歉!根据苹果的用户交互指引,该页面是在程序加载时显示的,不建议动态修改.

正确的做法一般都是用固定的图片做启动页面图,在启动页面结束之后做任何你想做的事.

如果真想动态修改启动页面,启动页面是固定的名字,可以在程序执行之后强制把页面替换掉,不过这样APP可能会被拒.

该怎么设置一个动态的启动图呢?在启动图结束的时候,用一个View来展示你的动图,记得placeHolder设置为和你的LaunchImage的图片一样就行,这样就可以做出类似的效果了

时间: 2024-10-10 01:54:59

iOS 启动页多语言的相关文章

iOS启动页设置

点击项目->TARGETS->App Icons and Launch Images->Launch Images Source->Use Asset Catalog...->Migrate 1.这里如果选择了New Asset Catalog,就在新生成的Images.xcassets里面配置LaunchImage,如果在Assets.xcassets里面也有LaunchImage,请删除(不然不会显示在这里配置的LaunchImage),同时把Launch Screen

iOS启动页

1.在images.xcassets中添加LaunchImage,如图所示:小编只是做了iOS8.0和iOS7.0的启动页 2.图片的尺寸: 320 * 480 640 * 960 640 * 1136 750 * 1334 1242 * 2208 3.

iOS 启动页和引导页的分割适配法

通常我们项目的启动页和引导页是一整张的图片去显示的, 这样在全面屏和非全面屏上如果用同一张图适配的话肯定是会在部分机型中被拉伸变形的,那么一种方案就是切两套图,通过代码判断机型然后显示对应的图片,这样做比较麻烦.另外一种方案就是用分割适配法,例如下图的这个引导页的适配 通常启动页和引导页都是这种类似页面,背景图上有一些图片和logo图标等,上图可以分开切成两到三张图,上方一张,下方按钮可以切图或者代码自己写,然后在来一张白色背景图或者自己代码写背景也行 适配的时候背景约束随机型铺满屏,即使被拉伸

ios启动页动画

在AppDelegate.m文件中添加如下代码 //初始化UIImageView对象,其中mScreenWidth,mScreenHeight为定义的全局常量// mScreenWidth=self.view.frame.size.width  mScreenHeight=self.view.frame.size.height    UIImageView *splashView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, mScree

iOS启动页加载广告

1.定义全局成员变量 @interface AppDelegate () @property (strong, nonatomic) UIImageView *adImageView; @property (strong, nonatomic) UINavigationController *rootNavi; @end 2.实现简单广告界面 @implementation AppDelegate - (BOOL)application:(UIApplication *)application

IOS启动页设置适应ios8/9

直接上截图 1. 添加对应尺寸的图 2.设置三项 3.去掉默认设置 4.特别的xcode 7 需 通过在p.list配置文件中增加节点: Launch image 类型为String 设置值为Default

[iOS]利用Appicon and Launchimage Maker生成并配置iOSApp的图标和启动页

一.先来研究下这个软件->Appicon and Launchimage Maker 首先打开你电脑上的AppStore,然后搜索:AppIcon 然后回车: 这里我们先使用免费版的点击下载.(左上角那个) 然后打开软件,应该是这样的: 软件好人性化,给我们标注了1,2,3该干啥.1选图片呗.2.选是要给什么设备以及iOS几做.然后3.是选择生成AppIcon还是Launchimages(启动页) 选择一张图片吧,开始我们的工作 选好图片,右上角这里索性就都选了吧,反正剩下的次数用一次少一次.

【IOS】模仿&quot;抽屉新热榜&quot;动态启动页YFSplashScreen

IOS最好要设置系统默认启动页面,不然进入应用就会突然闪现黑色画面 下图是我们要实现的效果: 总体思路:设置一个系统默认启动页面,在进入didFinishLaunchingWithOptions时, 给Window添加自定义启动页,其初始画面和系统启动页一样. 可在自定义启动页实现一些动画,动画结束后,将自定义启动页移除. 一.设置系统默认启动页 现在,新建项目会自动生成LaunchScreen.storyboard启动页面文件. 来到项目根目录  点击General  找到以下: 发现除了直接

iOS LaunchScreen设置启动图片,启动页停留时间

[新建的iOS 项目启动画面默认为LaunchScreen.xib] 如果想实现一张图片作为启动页,如下图 如果启动不行,记得clear 一下工程 如果启动页需要停留一段时间,只需要在 AppDelegate的方法: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customiz