新款Iphone发布后的整页背景图像大小(Xcode)
以下是您知道的iPhone解决方案新款Iphone发布后的整页背景图像大小(Xcode),iphone,xcode,Iphone,Xcode,以下是您知道的iPhone解决方案 Iphone Xs最大414x896点以3x、1242x2688像素渲染 Iphone Xr 414x896点以2x、828x1792像素渲染 Iphone X、Xs 375x812点。渲染速度为3x,1125x2436像素 Iphone 6+、6s+、7+、8+414x716点,渲染为3x、1242x2208 px Iphone 6、6s、7、8 375x667点,渲染速度为2x、750x1334px 让我们假设我想创建一个整页背景图像。您能确认x、@2
- Iphone Xs最大414x896点以3x、1242x2688像素渲染
- Iphone Xr 414x896点以2x、828x1792像素渲染
- Iphone X、Xs 375x812点。渲染速度为3x,1125x2436像素
- Iphone 6+、6s+、7+、8+414x716点,渲染为3x、1242x2208 px
- Iphone 6、6s、7、8 375x667点,渲染速度为2x、750x1334px
- 对于@x,375x667 px是真的吗
- 对于@2x,750x1334 px是否为真
- 3倍大小的怎么样?1242x2688(关于@3x尺寸,请参考iPhone Xs Max)
- 您可以使用更大的分辨率来解决此问题
1X-375x667+Y
2X-(375*2)x(667*2)+2Y
3X-(375*3)x(667*3)+3Y
手机会自动设置图像大小。这是为不同屏幕大小(iPhone XS Max、iPhone XS、iPhone Xr)定义图像的非正式技巧。 我发现了一个诡计。在我的应用程序中,所有iPhone设备都有启动屏幕(请参见屏幕截图)。 在
启动屏幕
之后出现的下一个屏幕是登录
。它应该具有与启动屏幕
相同的图像。
不幸的是Xcode
创建以下image set
inAssets
开箱即用(iPhone 1x、2x、3、iPad 1x、2x-请参阅图像)。
在从Launch Screen
到Login Screen
的转换过程中,我看到了一些瑕疵,因为图像在iphonex、xsmax、iphonexr
为了解决这个问题,我将Contents.json
文件从LaunchImage.LaunchImage
文件夹复制到Finder中的BackgroundImage.imageset
文件夹(请参阅下面图像的步骤)
更新
AppImages.xcsets/BackgroundImage.imageset/Contents.json文件的内容:
{
“图像”:[
{
“成语”:“iphone”,
“刻度”:“1x”
},
{
“成语”:“iphone”,
“子类型”:“视网膜4”,
“刻度”:“1x”
},
{
“成语”:“iphone”,
“文件名”:“retina4640x960.png”,
“比例”:“2x”
},
{
“成语”:“iphone”,
“文件名”:“retina4640x1136.png”,
“子类型”:“视网膜4”,
“比例”:“2x”
},
{
“成语”:“iphone”,
“文件名”:“retina47750x1334.png”,
“子类型”:“667h”,
“比例”:“2x”
},
{
“成语”:“iphone”,
“文件名”:“iPhoneXr828x1792.png”,
“子类型”:“1792h”,
“比例”:“2x”
},
{
“成语”:“iphone”,
“比例”:“3x”
},
{
“成语”:“iphone”,
“子类型”:“视网膜4”,
“比例”:“3x”
},
{
“成语”:“iphone”,
“文件名”:“retina551242x2208.png”,
“子类型”:“736h”,
“比例”:“3x”
},
{
“成语”:“iphone”,
“文件名”:“iPhoneX1125x2436.png”,
“子类型”:“2436h”,
“比例”:“3x”
},
{
“成语”:“iphone”,
“文件名”:“iPhoneXSMax1242x2688.png”,
“子类型”:“2688h”,
“比例”:“3x”
},
{
“成语”:“ipad”,
“文件名”:“ipad1024x768.png”,
“刻度”:“1x”
},
{
“成语”:“ipad”,
“文件名”:“ipad2048x1536.png”,
“比例”:“2x”
}
],
“信息”:{
“版本”:1,
“作者”:“xcode”
}
}
现在在Xcode
中,我看到了以下模板。我可以为以下设备定义背景图像:视网膜高清4.7(iPhone 6、iPhone 7、iPhone 8)、视网膜高清5.5(iPhone 6 Plus、iPhone 7 Plus、iPhone 8 Plus)、iPhone Xr、iPhone X/iPhone Xs、iPhone Xs Max
@Igor有一个有趣的答案:)即使不算太糟糕,但排除一件事——然后你的项目会因为大量的图像而呈指数级增长。相反,您可以有3个映像(如果您想支持从5到XSMax的设备,甚至可以有2个映像)。因此,图像为4S对角线,然后为5,SE,6,7,8和Xr,X,Xs,XsMax 当您需要选择合适的图像时,请使用以下代码:
extension UIImage {
static func imageWithName(_ name: String) -> UIImage? {
var finalName = name
switch UIDevice.current.screenType {
case .short: finalName += "@short"
case .normal: finalName += "@normal"
case .tall: finalName += "@tall"
case .unknown: finalName = ""
}
return UIImage(named: finalName)
}
}
extension UIDevice {
enum DeviceType: String {
case iPhones_4_4S = "iPhone 4 or iPhone 4S"
case iPhones_5_5s_5c_SE = "iPhone 5, iPhone 5s, iPhone 5c or iPhone SE"
case iPhones_6_6s_7_8 = "iPhone 6, iPhone 6S, iPhone 7 or iPhone 8"
case iPhones_6Plus_6sPlus_7Plus_8Plus = "iPhone 6 Plus, iPhone 6S Plus, iPhone 7 Plus or iPhone 8 Plus"
case iPhones_X_XS = "iPhone X or iPhone XS"
case iPhone_XR = "iPhone XR"
case iPhone_XSMax = "iPhone XS Max"
case unknown
}
var deviceType: DeviceType {
switch UIScreen.main.nativeBounds.height {
case 960: return .iPhones_4_4S
case 1136: return .iPhones_5_5s_5c_SE
case 1334: return .iPhones_6_6s_7_8
case 1792: return .iPhone_XR
case 1920, 2208: return .iPhones_6Plus_6sPlus_7Plus_8Plus
case 2436: return .iPhones_X_XS
case 2688: return .iPhone_XSMax
default: return .unknown
}
}
enum ScreenType {
case short, normal, tall, unknown
}
var screenType: ScreenType {
switch deviceType {
case .iPhones_4_4S: return .short
case .iPhones_5_5s_5c_SE: fallthrough
case .iPhones_6_6s_7_8: fallthrough
case .iPhones_6Plus_6sPlus_7Plus_8Plus: return .normal
case .iPhone_XR: fallthrough
case .iPhones_X_XS: fallthrough
case .iPhone_XSMax: return .tall
default: return .unknown
}
}
}
您应该像这样将图像存储在资产目录中-单刻度,适用于通用设备,并带有“@short”、“@normal”、“@toll”后缀
用法:
bgImageView.image=UIImage.imageWithName(“main_bg”)
更新:
另一个选项只是使用普通方式,如@1x@2x@3x图像,但使用内容模式缩放方面填充:
bgImageView.contentMode = .scaleAspectFill
然后你的图像将完美地填满屏幕,只有你准备好从侧面裁剪。如果它没有破坏你的形象,那么它是最简单和最好的解决方案
注:我知道我不是在回答一个话题,而是在回答Igor的答案,但我来到这里是为了寻找管理资产目录中图像的解决方案,因为苹果发布了新尺寸的屏幕
更新2:
就我在本主题中得到的主要问题和解释的分辨率/比例而言,我认为对于使用XSMax分辨率的@3x很好,对于@2x-Xr分辨率,那么它将被裁剪,但在所有具有contentMode=.ScaleSpectFill的设备上看起来都很好且清晰,如上所述。对于导出图形,我会像下图所示那样:
对于@2x尺寸,Xr的宽度为1792w;对于@3x尺寸,Xr的宽度为2688w,只需使用通用设备支持创建图像集即可 添加具有我使用的最新设备尺寸的单个图像1242 × 2208
在xib/storyboard中,使用内容模式添加imageviewAspectFit,其工作正常。如您所述,3倍高度的大小将为2001px。这将是一个质量损失,因为iPhone Xs Max需要2688像素的高度才能获得清晰的视野。谢谢你的回复@Ali Ihsan URALThen您可以使用更大的图像来获得分辨率。这不是尺寸问题,而是分辨率问题