IT Share you

iPhone 6/6 Plus 가로 전용 앱의 시작 이미지를 어떻게 생성합니까?

shareyou 2020. 12. 2. 22:14
반응형

iPhone 6/6 Plus 가로 전용 앱의 시작 이미지를 어떻게 생성합니까?


iPhone 6 / iPhone 6 Plus 지원을 추가하려는 기존 가로 모드 전용 앱이 있습니다. iOS 6/7을 지원할 때 가로 이미지가 세로로 회전 된 기본 이름의 시작 세로 이미지를 사용했습니다 (예 : 4 인치 화면의 경우 가로 1136x640을 만든 다음 회전하여 640x1136 시작 이미지를 만들었습니다).

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 ) :

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

아이폰 6 플러스 : ( 1242x2208 )

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

Default-Landscape@3x.png (가로 용)

iPad를 지원하는 경우 iPad 기본 이미지의 이름을 변경하여 ~ ipad (예 : Default-Portrait ~ ipad.png)를 추가하여 6 plus가 3x 이미지를 재정의하기 때문에 선택하지 않도록해야합니다.


다음 단계가 저에게 효과적이었습니다.

  1. 프로젝트 (루트 디렉토리 또는 리소스 폴더)에 이미지를 추가합니다 (포트레이트 시작 이미지에 설명하겠습니다) : Default.png (3.5 인치), Default-568h@2x.png (4 인치), Default- 667h@2x.png (iPhone 6), Default-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 만 사용하는 경우 "Launch Screen File"은 비어 있어야합니다. 그것은 나를 도왔다.

"시작 화면 파일"이 비어 있습니다.


이것은 가로 전용 iOS 9 지원 앱이 iOS 9 iPhone에서 적절한 시작 이미지를 표시하도록 확장하는 @AlexArgo의 답변에 대한 후속 조치입니다. 그 대답과 마찬가지로 자산 카탈로그, 스토리 보드 또는 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>

For all iPhones except the plus, there is no separate launch screen for landscape-only apps. You set the orientation in the plist as Deepak described, and then you set your portrait launch screen to the rotated version of your landscape launch screen.

This is how it's always been, and the only thing that has changed is that the plus now supports a separate, distinct landscape launch screen. All other devices still only support portrait launch screens regardless of your app's starting orientation.


What I've done is change my project to NOT use an asset catalog for launch images, and use the old technique for iOS7 and earlier. This gets the launch images working for iOS7 and earlier.

To get them also working for iOS8 so that you can get the correct resolution, and have your app recognised as being built for the new iPhone 6/+, you also need to create a new LaunchImage XIB and tell Xcode to use that.

What appears to happen is that launching the app on an iOS8 device uses the new XIB technique, and launching it on an iOS7 or earlier device uses the images you've grown to know and love.

This for me seems to work. It's ugly IMO, but it works.

Hope this helps some people.


you just add iPhone6-Portrait@2x.png, then it will fix itself for Landscape as well. I've also a landscape-only app for iPhone 6 and iPhone 6 Plus and it works without problems!


가로 모드에서 응용 프로그램을 시작하려면 Info.plist 파일을 편집하여 다음 코드와 같이 적절한 값 (UIInterfaceOrientationLandscapeRight 또는 UIInterfaceOrientationLandscapeLeft)과 함께 UIInterfaceOrientation 키를 추가합니다. 이는 시스템에 시작시 상태 표시 줄의 방향을 적절하게 설정하는 힌트를 제공합니다.

목록 1 : 가로 모드에서 애플리케이션 시작

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

더 많은 정보를 원하시면 여기를 클릭하세요

참고 URL : https://stackoverflow.com/questions/25926661/how-do-i-create-launch-images-for-iphone-6-6-plus-landscape-only-apps

반응형