iOS 啟動頁多語言詳解

來源:互聯網
上載者:User

iOS 啟動頁多語言詳解
iOS 啟動頁多語言

啟動頁適配多語言, 想必很多 App 都有類似的需求。但是之前嘗試過程中, 發現 “多語言” 的那幾種實現方式, 在歡迎頁面上都不適應, 直到遇到了 UILaunchImages ~ 下文將詳細描述如何?啟動頁多語言。

傳統多語言設定

說起多語言, 我們無非這樣實現:

為 App 添加多語言支援。

添加對應的配置, 資源。 比如:

文本:

圖片:

使用對應資源, 比如:

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 ]

用這種方式配置啟動頁也十分簡單, 具體步驟:

取消啟動頁使用的 Asset Catalog

在Info.plist 中添加UILaunchImages項<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;">UILaunchImages UILaunchImageName LaunchImage UILaunchImageMinimumOSVersion 7.0 UILaunchImageSize {320, 480} UILaunchImageOrientation Portrait UILaunchImageName LaunchImage-568h UILaunchImageMinimumOSVersion 7.0 UILaunchImageSize {320, 568} UILaunchImageOrientation Portrait UILaunchImageName LaunchImage-667h UILaunchImageMinimumOSVersion 8.0 UILaunchImageSize {375, 667} UILaunchImageOrientation Portrait UILaunchImageName LaunchImage-736h UILaunchImageMinimumOSVersion 8.0 UILaunchImageSize {414, 736} UILaunchImageOrientation Portrait

添加對應的啟動頁資源

?

如此, 即可完成 啟動頁 多語言的適配, 不信你就試試唄~

PS: 這裡, 說明一點。 啟動頁只會保留一份, 也就是說, 你第一次載入完以後, 切換了語言, 再重新開啟App, 它的啟動頁不會跟著更新的。 這也符合蘋果的使用者互動指引。

如果你想要動態修改啟動頁面圖LaunchImage, 抱歉!根據蘋果的使用者互動指引,該頁面是在程式載入時顯示的,不建議動態修改.

正確的做法一般都是用固定的圖片做啟動頁面圖,在啟動頁面結束之後做任何你想做的事.

如果真想動態修改啟動頁面,啟動頁面是固定的名字,可以在程式執行之後強制把頁面替換掉,不過這樣APP可能會被拒.

該怎麼設定一個動態啟動圖呢?在啟動圖結束的時候,用一個View來展示你的動圖,記得placeHolder設定為和你的LaunchImage的圖片一樣就行,這樣就可以做出類似的效果了

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.