簡體   English   中英

帶有LandscapeLeft和LandscapeRight方向的iPhone初始屏幕

[英]iPhone splash screen with LandscapeLeft and LandscapeRight orientations

我正在嘗試使用UILaunchImagesLandScapeLeftLandScapeRight Orientation提供不同的圖像,但是只有其中之一會被拾取,任何人UILaunchImages以為LandScapeLeftLandScapeRight 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

還有這個:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW28

特別注意以下句子:

指定該鍵的名稱[即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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM