[英]iPhone splash screen with LandscapeLeft and LandscapeRight orientations
我正在嘗試使用UILaunchImages
為LandScapeLeft
和LandScapeRight
Orientation提供不同的圖像,但是只有其中之一會被拾取,任何人UILaunchImages
以為LandScapeLeft
和LandScapeRight
Orientation提供LandScapeLeft
的確切命名約定,我正在為以下內容提供這些圖像: iPhone,iOS8及更高版本。
准確地講,我正在尋找具有iOS8以后正確命名約定的啟動圖像的確切大小,確實有一些較舊的文章提供了UILaunchImages
的詳細信息,但我看到在Apple Human Interface Guideline
,圖像大小已針對最新更新進行了更新。 iOS的
我希望僅使用UILaunchImages實現橫向啟動屏幕。
在info.plist中,我將受支持的方向設置為“ LandscapeLeft”和“ LandscapeRight”。
我已經在iPhone 5c和iPhone 6 plus上測試過
根據蘋果文件
命名啟動映像文件
每個啟動映像的名稱都傳達了其用途以及使用方式。 建議對啟動映像文件名使用以下格式:
“ basename-usage_specific_modifiers.png”
文件名的一部分是您使用UILaunchImageFile鍵指定的字符串。 (如果未指定鍵,則iOS使用字符串Default作為啟動映像名稱。)在基本名稱中,可以添加幾種不同類型的修飾符:
高分辨率圖像修改器-使用@ 2x修改器可以識別用於Retina顯示屏的圖像。
特定於平台的修飾符-使用修飾符〜iphone或〜ipad可以指定針對特定設備尺寸的圖像。
特定於方向的修飾符-使用字符串-Landscape,-Portrait,-LandscapeLeft,-LandscapeRight或-PortraitUpsideDown指定設備處於特定方向時的啟動圖像。 較具體的方向修飾符優先於較不具體的方向修飾符。 例如,當設備處於正確方向時,具有-LandscapeLeft修飾符的圖像優先於具有-LandscapeLeft修飾符的圖像。
iPhone 5修改器-使用字符串-568h指定用於屏幕高568點的設備的啟動圖像。 由於此類設備還具有Retina顯示屏,因此您還應該在圖像名稱中包含@ 2x修飾符。
URL方案修飾符-如果要在啟動應用程序時顯示那些啟動圖像以打開指定類型的URL,請在啟動圖像名稱中包含應用程序的自定義URL方案的名稱。 方案修改器的格式為-您的自定義方案名稱在哪里。 例如,如果您的應用打開格式為myscheme://example.com的URL,則應在啟動映像名稱中包含-myscheme。
你說:
根據Apple文檔“ 命名您的啟動映像文件” ,每個啟動映像的名稱都傳達了其用途以及使用方式。
但是您不了解的是該文檔非常舊,並且僅當您在Info.plist中使用單個啟動映像條目時才遵守命名約定。 那不是你在做什么。 您正在Info.plist中使用Launch Images 數組 。 因此,啟動映像的名稱完全是任意的。 只有數組中每個啟動映像的UILaunchImageOrientation都會告訴系統在啟動時使用什么。 實際上,在這種情況下,您一定不能使用該早期文檔中的命名約定。
您將要閱讀此文檔:
https://developer.apple.com/library/content/technotes/tn2244/_index.html
還有這個:
特別注意以下句子:
指定該鍵的名稱[即
UILaunchImageName
] 不應包括文件擴展名, 也不應該包括改性劑,如@2x
,-568h
,~iphone
,或~ipad
。
[強調我的]
嘗試此操作以檢測設備方向,
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if(orientation == 0) //Default orientation
//Your image for this Orientation
else if(orientation == UIInterfaceOrientationPortrait)
//Set image if the orientation is in Portrait
else if(orientation == UIInterfaceOrientationLandscapeLeft)
// Set image if Left
else if(orientation == UIInterfaceOrientationLandscapeRight)
//Set image if right
有關更多參考,請訪問此鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.