苹果官网称分辨率为1080p: 1920 x 1080
然而,Xcode (8.0 GM今天发布)要求的启动屏幕是2208 x 1242。
谁是对的?
苹果官网称分辨率为1080p: 1920 x 1080
然而,Xcode (8.0 GM今天发布)要求的启动屏幕是2208 x 1242。
谁是对的?
当前回答
你应该在iOS 8中停止使用启动图像,而使用故事板或nib/xib。
在Xcode 6中,打开文件菜单并选择新建⟶文件…⟶iOS⟶用户界面⟶启动界面。 然后通过单击打开项目的设置。 在General选项卡中,在App Icons和Launch Images部分,将启动屏幕文件设置为你刚刚创建的文件(这将在info.plist中设置UILaunchStoryboardName)。
请注意,目前模拟器只会显示黑屏,所以您需要在真实设备上进行测试。
添加一个启动屏幕xib文件到你的项目:
配置您的项目使用启动屏幕xib文件而不是资产目录:
其他回答
iPhone 6 Plus的真实/物理分辨率是1920x1080,但在Xcode中,你的界面分辨率是2208x1242 (736x414点),在设备上它会自动缩小到1920x1080像素。
iPhone分辨率快速参考:
Device Points Log. Res. Sc. Real Res. PPI Ratio Size
iPhone 12 Pro Max, 13 Pro Max 926x428 2778x1284 3x 2778x1284 458 19.5:9 6.7"
iPhone 12, 12 Pro, 13, 13 Pro 844x390 2532x1170 3x 2532x1170 460 19.5:9 6.1"
iPhone 12 mini, 13 mini 812x375 2436x1125 3x 2340x1080 476 19.5:9 5.4"
iPhone XS Max, 11 Pro Max 896x414 2688x1242 3x 2688x1242 458 19.5:9 6.5"
iPhone XR, 11 896x414 1792x828 2x 1792x828 326 19.5:9 6.1"
iPhone X, XS, 11 Pro 812x375 2436x1125 3x 2436x1125 458 19.5:9 5.8"
iPhone 6+, 6S+, 7+, 8+ 736x414 2208x1242 3x 1920x1080 401 16:9 5.5"
iPhone 6, 6S, 7, 8, SE2 667x375 1334x750 2x 1334x750 326 16:9 4.7"
iPhone 5, 5S, 5C, SE1 568x320 1136x640 2x 1136x640 326 16:9 4.0"
iPhone 4, 4S 480x320 960x640 2x 960x640 326 3:2 3.5"
iPhone 3GS 480x320 480x320 1x 480x320 163 3:2 3.5"
你应该在iOS 8中停止使用启动图像,而使用故事板或nib/xib。
在Xcode 6中,打开文件菜单并选择新建⟶文件…⟶iOS⟶用户界面⟶启动界面。 然后通过单击打开项目的设置。 在General选项卡中,在App Icons和Launch Images部分,将启动屏幕文件设置为你刚刚创建的文件(这将在info.plist中设置UILaunchStoryboardName)。
请注意,目前模拟器只会显示黑屏,所以您需要在真实设备上进行测试。
添加一个启动屏幕xib文件到你的项目:
配置您的项目使用启动屏幕xib文件而不是资产目录:
看看这张信息图:http://www.paintcodeapp.com/news/iphone-6-screens-demystified
它解释了旧iPhone、iPhone 6和iPhone 6 Plus之间的区别。你可以看到屏幕大小的比较点,渲染像素和物理像素。你也可以在这里找到问题的答案:
iPhone 6 Plus -视网膜高清显示。缩放因子为3,然后将图像从渲染的2208 × 1242像素缩小到1920 × 1080像素。 降尺度比为1920 / 2208 = 1080 / 1242 = 20 / 23。这意味着原始渲染的每23个像素必须映射到20个物理像素。换句话说,图像缩小到原始大小的87%左右。
更新:
上面提到的信息图表有一个更新版本。它包含了更多关于屏幕分辨率差异的详细信息,涵盖了迄今为止所有型号的iPhone,包括4英寸的设备。
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
尽管我一般不喜欢约翰·格鲁伯的Daring Fireball博客的基调,但他的《更大的iPhone显示屏猜想》还是很值得一读的。
他猜对了,但两款机型的点分辨率和像素分辨率都是完全正确的,除了他(我也是)不希望苹果公司制造分辨率更小的物理显示器并缩小尺寸(详情见@Tommy的回答)。
这一切的要点是,我们应该停止从像素的角度思考,而开始从点的角度思考(这种情况已经存在了很长一段时间,这不是最近的发明)以及UI元素的物理大小。简而言之,这两款新iPhone在这方面都有所改进,因为在物理上,大多数元素都保持了相同的尺寸,你可以在屏幕上容纳更多元素(屏幕越大,你可以容纳更多元素)。
我只是有点失望,他们没有保持内部分辨率与实际屏幕分辨率1:1的映射,为更大的模型。
在物理设备上,iPhone 6 Plus主屏幕的边界是2208x1242, nativeBounds是1920x1080。这涉及到硬件缩放,以调整物理显示的大小。
在模拟器上,iPhone 6 Plus主屏幕的边界和nativeBounds都是2208x1242。
换句话说……视频、OpenGL和其他基于calayer处理像素的东西将处理设备上真正的1920x1080帧缓冲(或sim上的2208x1242)。UIKit中处理点的东西将处理2208x1242 (x3)的边界,并在设备上适当缩放。
模拟器无法访问在设备上进行缩放的相同硬件,在软件中模拟它并没有太大的好处,因为它们会产生与硬件不同的结果。因此,将模拟设备主屏幕的nativeBounds设置为物理设备主屏幕的边界是有意义的。
iOS 8为UIScreen添加了API (nativeScale和nativeBounds),让开发人员确定对应于UIScreen的CADisplay的分辨率。