簡體   English   中英

如何為iPhone 6/6 Plus僅景觀應用創建啟動圖像?

[英]How do I create launch images for iPhone 6 / 6 Plus Landscape Only Apps?

我有一個現有的橫向應用程序,我正在嘗試添加iPhone 6 / iPhone 6 Plus支持。 當我支持iOS 6/7時,我只使用默認命名的啟動肖像圖像,將風景圖像旋轉為縱向(即,對於4“屏幕,我創建了一個橫向1136x640,然后旋轉以創建640×1136啟動圖像。)

我正在嘗試為iOS 8和iPhone 6 / 6+工作,但還沒有找到有效的東西。 以下是我嘗試過的一些事情:

  1. 遵循4“屏幕啟動圖像約定的模式。我創建了Default-667h@2x.png和Default-736h@3x.png圖像。這確實欺騙了模擬器以正確的iPhone 6/6 +分辨率運行但是在啟動時,使用4“屏幕啟動圖像,而不是我創建的新圖像。
  2. 使用資產目錄 - 我在LaunchImages資產中為iPhone 6和iPhone 6 Plus創建縱向啟動圖像,為iPhone 6 Plus創建橫向圖像。 iPhone 6 Plus可以工作,但iPhone 6只顯示黑屏。 (無法在資產目錄中創建iPhone 6橫向啟動圖像)
  3. 在Info.plist中指定UILaunchImages數組,其中包含所有屏幕大小的條目(請參閱參考https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/ uid / TP40009252-SW28 )。 我在這里得到了與資產目錄類似的結果。 我可以讓iPhone 6 Plus風景有效,但不能用iPhone 6風景。

我找到了一種解決方法,使得僅在iOS 8 GM上使用橫向啟動圖像。 我最終在Info.plist中使用了UILaunchImages數組。 訣竅是讓圖像顯示不明確支持橫向(iPhone 4 / 4S,iPhone 5 / 5S / 5C,iPhone 6),您需要指定重復的條目。 請參閱下面的示例。 這適用於僅支持橫向iPad的橫向手機應用程序。 iOS 7將回退到默認圖像名稱。

所有iPhone發布圖像都需要像往常一樣旋轉到縱向,除了iPhone 6 Plus發布圖像。 它原生支持橫向啟動圖像,因此您需要將其啟動圖像保留為橫向。

以下是Info.plist的相關內容:

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{320, 480}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{320, 480}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-568h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{320, 568}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-568h</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{320, 568}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-Portrait</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{768, 1024}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-Landscape</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{768, 1024}</string>
    </dict>
</array>

iPhone 6等的模式已經改變

iPhone 6( 750x1334 ):

Default-375w-667h@2x~iphone.png

iPhone 6 Plus:( 1242x2208

Default-414w-736h@3x~iphone.png

Default-Landscape@3x.png(適用於風景)

請注意,如果您支持iPad,則必須重命名您的iPad默認圖像以附加~ipad,例如Default-Portrait~ipo.png,以防止6 plus選擇那些因為那些覆蓋3x圖像。

以下步驟對我有用:

  1. 使用以下提名將圖像添加到項目(根目錄或資源文件夾)(我將其描述為Portrait launchimages):Default.png(3.5英寸),Default-568h @ 2x.png(4英寸),默認 - 667h@2x.png(iPhone 6),默認736 @ 3x.png(iPhone 6plus)。
  2. 轉到常規選項卡上的目標設置,應用程序圖標和啟動圖像 - >將啟動圖像源設置為不使用資產目錄('不使用資產目錄')。
  3. 從主圖像資源中刪除LaunchImage資產
  4. 轉到常規選項卡上的目標設置,應用程序圖標和啟動圖像 - >設置啟動圖像源以使用資產目錄
  5. XCode 6將向您詢問有關現有圖像的圖像資產遷移的信息。 只需點擊“遷移”即可。

它適用於iOS7,iOS8上的各種設備。 注意:如果您檢查新的LaunchImage資產,那么您可以看到它真的很奇怪。 它似乎只包含一些沒有iPhone6或iPhone 6plus分辨率圖像的圖像。

對於iPhone 6:

750 x 1334(@ 2x)的肖像
1334 x 750(@ 2x)景觀

對於iPhone 6 Plus:

1242 x 2208(@ 3x)為肖像
2208 x 1242(@ 3x)景觀

或者你可以通過這個鏈接,它可以幫助你

http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/

如果您僅使用Images.xassets“啟動屏幕文件”應為空。 它幫助了我。

“啟動屏幕文件”為空

這是@AlexArgo的答案的后續內容,它擴展了它,以便僅支持風景,支持iOS 9的應用程序在iOS 9 iPhone上顯示適當的啟動圖像。 與該答案一樣,不需要資產目錄,故事板或xib。

如果沒有這些添加,我們看到的行為是在iOS 9 iPhone上啟動我們的僅景觀應用程序顯示與iOS 8相同的圖像,但圖像順時針旋轉90度並通過拉伸到相反方向的尺寸而扭曲。

預修iOS 9 iPhone發布屏幕: 預修復iOS 9 iPhone啟動屏幕

該解決方案有兩個部分:

  1. 在來自@ AlexArgo的答案的iOS 8項目之前 ,將以下iOS 9項目添加到Info.plistUILaunchImages陣列中。
  2. 將以下iOS 9項目中引用的新啟動圖像(例如, Default-iOS9-568h )添加到您的應用程序。 新的發布圖像是實際的 “風景”方向圖像(比它們更高),與@AlexArgo的iOS 8項目引用的圖像不同,后者以風景圖像開始,然后在添加到應用程序之前旋轉到縱向。 請注意,這兩組圖像必須保留在應用程序中,以便此解決方案可以同時在iOS 8和9上運行。

     <key>UILaunchImages</key> <array> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 480}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9-568h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{320, 568}</string> </dict> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>9.0</string> <key>UILaunchImageName</key> <string>Default-iOS9-667h</string> <key>UILaunchImageOrientation</key> <string>Landscape</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> ...(pre-iOS 9 items)... </array> 

修復后的iOS 9 iPhone發布屏幕: 在此輸入圖像描述

要使用ipad(橫向和縱向模式),您需要在info.plist中添加UILaunchImages~ipad鍵:

<key>UILaunchImages~ipad</key>
    <array>
        <dict>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>7.0</string>
            <key>UILaunchImageName</key>
            <string>Default-Landscape</string>
            <key>UILaunchImageOrientation</key>
            <string>Landscape</string>
            <key>UILaunchImageSize</key>
            <string>{768, 1024}</string>
        </dict>
        <dict>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>7.0</string>
            <key>UILaunchImageName</key>
            <string>Default-Portrait</string>
            <key>UILaunchImageOrientation</key>
            <string>Portrait</string>
            <key>UILaunchImageSize</key>
            <string>{768, 1024}</string>
        </dict>
        <dict>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>7.0</string>
            <key>UILaunchImageName</key>
            <string>Default-Landscape</string>
            <key>UILaunchImageOrientation</key>
            <string>Landscape</string>
            <key>UILaunchImageSize</key>
            <string>{748, 1024}</string>
        </dict>
        <dict>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>7.0</string>
            <key>UILaunchImageName</key>
            <string>Default-Portrait</string>
            <key>UILaunchImageOrientation</key>
            <string>Portrait</string>
            <key>UILaunchImageSize</key>
            <string>{768, 1004}</string>
        </dict>
    </array>

對於除plus之外的所有iPhone,沒有針對僅橫向應用的單獨啟動屏幕。 您可以像Deepak描述的那樣在plist中設置方向,然后將縱向啟動屏幕設置為橫向啟動屏幕的旋轉版本。

這就是它一直如此,唯一改變的是現在加上一個獨立的,獨特的景觀發布屏幕。 無論您的應用程序的起始方向如何,所有其他設備仍然只支持縱向啟動屏幕。

我所做的是將我的項目改為不使用資產目錄來發布圖像,並使用iOS7及更早版本的舊技術。 這使得發布圖像適用於iOS7及更早版本。

為了讓它們也適用於iOS8,以便您可以獲得正確的分辨率,並確認您的應用程序是為新的iPhone 6 / +構建的,您還需要創建一個新的LaunchImage XIB並告訴Xcode使用它。

似乎發生的事情是在iOS8設備上啟動應用程序使用新的XIB技術,並在iOS7或更早版本的設備上啟動它使用您已經了解和喜愛的圖像。

這對我來說似乎有效。 這是丑陋的IMO,但它確實有效。

希望這可以幫助一些人。

你只需添加iPhone6-Portrait@2x.png,然后它也將自己修復為Landscape。 我也是iPhone 6和iPhone 6 Plus的專用風景應用程序,它可以正常運行!

要以橫向模式啟動應用程序,請編輯Info.plist文件以使用適當的值(UIInterfaceOrientationLandscapeRight或UIInterfaceOrientationLandscapeLeft)添加UIInterfaceOrientation鍵,如下面的代碼所示。 這提示系統在啟動時適當地設置狀態欄的方向。

清單1:以橫向模式啟動應用程序

<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string> 

欲了解更多信息, 請點擊此

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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