次に、コードで、アプリが実行されているデバイスと、縦向きか横向きかを判断し、使用する画像を決定する必要があります。これを少し簡単にするために、https ://github.com/InderKumarRathore/DeviceGuru というフレームワークを使用しました。最新のデバイス (iPhone 6s および iPhone 6s plus) はまだ含まれていないので注意してください。そのため、彼の迅速なファイルに行を追加する必要があります。次に、launchImage が必要な vc に以下のコードを配置すると、次のようになります。
func launchImage() -> UIImage? {
if let launchImageName = launcheImageName() {
print(launchImageName)
return UIImage(named: launchImageName)
}
else {
print("no launch image")
return nil
}
}
func launcheImageName() -> String? {
let HD35 = "LaunchImage-700@2x.png"
let HD40 = "LaunchImage-700-568h@2x"
let HD47 = "LaunchImage-800-667h@2x.png"
var HD55 = "LaunchImage-800-Portrait-736h@3x.png"
var padHD = "LaunchImage-700-Portrait@2x~ipad.png"
var pad = "LaunchImage-700-Portrait~ipad.png"
if UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeLeft || UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeRight {
HD55 = "LaunchImage-800-Landscape-736h@3x.png"
padHD = "LaunchImage-700-Landscape@2x~ipad.png"
pad = "LaunchImage-700-Landscape~ipad.png"
}
let hardware = hardwareString()
if (hardware == "iPhone1,1") { return HD35 }
if (hardware == "iPhone1,2") { return HD35 }
if (hardware == "iPhone2,1") { return HD35 }
if (hardware == "iPhone3,1") { return HD35 }
if (hardware == "iPhone3,2") { return HD35 }
if (hardware == "iPhone3,3") { return HD35 }
if (hardware == "iPhone4,1") { return HD35 }
if (hardware == "iPhone5,1") { return HD40 }
if (hardware == "iPhone5,2") { return HD40 }
if (hardware == "iPhone5,3") { return HD40 }
if (hardware == "iPhone5,4") { return HD40 }
if (hardware == "iPhone6,1") { return HD40 }
if (hardware == "iPhone6,2") { return HD40 }
if (hardware == "iPhone7,1") { return HD55 }
if (hardware == "iPhone7,2") { return HD47 }
if (hardware == "iPhone8,1") { return HD55 }
if (hardware == "iPhone8,2") { return HD47 }
if (hardware == "iPod1,1") { return HD35 }
if (hardware == "iPod2,1") { return HD35 }
if (hardware == "iPod3,1") { return HD35 }
if (hardware == "iPod4,1") { return HD35 }
if (hardware == "iPod5,1") { return HD40 }
if (hardware == "iPad1,1") { return pad }
if (hardware == "iPad1,2") { return pad }
if (hardware == "iPad2,1") { return pad }
if (hardware == "iPad2,2") { return pad }
if (hardware == "iPad2,3") { return pad }
if (hardware == "iPad2,4") { return pad }
if (hardware == "iPad2,5") { return pad }
if (hardware == "iPad2,6") { return pad }
if (hardware == "iPad2,7") { return pad }
if (hardware == "iPad3,1") { return padHD }
if (hardware == "iPad3,2") { return padHD }
if (hardware == "iPad3,3") { return padHD }
if (hardware == "iPad3,4") { return padHD }
if (hardware == "iPad3,5") { return padHD }
if (hardware == "iPad3,6") { return padHD }
if (hardware == "iPad4,1") { return padHD }
if (hardware == "iPad4,2") { return padHD }
if (hardware == "iPad4,3") { return padHD }
if (hardware == "iPad4,4") { return padHD }
if (hardware == "iPad4,5") { return padHD }
if (hardware == "iPad4,6") { return padHD }
if (hardware == "iPad4,7") { return padHD }
if (hardware == "iPad4,8") { return padHD }
if (hardware == "iPad5,3") { return padHD }
if (hardware == "iPad5,4") { return padHD }
if (hardware == "i386") { return HD55 }
if (hardware == "x86_64") { return HD55 }
if (hardware.hasPrefix("iPhone")) { return HD55 }
if (hardware.hasPrefix("iPod")) { return HD55 }
if (hardware.hasPrefix("iPad")) { return padHD }
//log message that your device is not present in the list
logMessage(hardware)
return nil
}