这可能听起来很傻,但当我在Xcode中使用尺寸时,总框架大小等于320 * 568(宽度*高度)。我对此感到满意。但是电话的分辨率实际上是不同的。iPhone 4S是640 * 960,而5和后续的版本是640 * 1136。
我知道最后一个恰好是Xcode使用的单位的两倍,所以我的问题是:
XCode使用哪种测量单位?如果是像素,为什么不使用手机的尺寸/分辨率作为参考?
这可能听起来很傻,但当我在Xcode中使用尺寸时,总框架大小等于320 * 568(宽度*高度)。我对此感到满意。但是电话的分辨率实际上是不同的。iPhone 4S是640 * 960,而5和后续的版本是640 * 1136。
我知道最后一个恰好是Xcode使用的单位的两倍,所以我的问题是:
XCode使用哪种测量单位?如果是像素,为什么不使用手机的尺寸/分辨率作为参考?
它使用点。 在视网膜设备中,1个点等于4个像素。在非视网膜设备中,1个点等于1个像素。
特别是“点与像素”部分。
编辑 回答你关于iPhone 4S与5以及下一代的问题。这些是实际的屏幕大小。分辨率不同。iPhone 4S和4的屏幕大小为320x480个点,或640x960个像素。iPhone 5、5C和5S的屏幕大小为320x568个点,或640x1136个像素。如果你正在使用xib,你可能会看到之前的尺寸,因为xib有一个定义的尺寸。这就是自动布局约束的用处。在xib或storyboard中告诉系统如何在屏幕上调整元素的大小/位置。你可能会使用struts和springs来决定如何在视图中重新定位项目,而不是自动布局。这很好。 即使你的xib / storyboard是iPhone5大小,如果在iPhone4/4S模拟器或设备上运行应用程序时检查屏幕的大小,在viewDidAppear方法中看到你的视图边界具有相应设备的大小。 使用点而不是像素更好,因为它帮助开发者抽象出分辨率。你不必关心一个点有多少像素,只需在屏幕上用点定位项目,让系统为你处理分辨率。
Xcode使用“points”作为计量单位。但是在下面的解释中,一个point等于多少个像素取决于你使用的是哪种视网膜设备。基本上,在非视网膜设备上,1pt=1px;而在iPhone 6 Plus及更高版本的“Plus”型号上,苹果(Apple)增加了3倍分辨率。
在普通的视网膜设备上,1pt=4px,而不是2px!然后苹果将这些像素打包成point。在iPhone Plus型号上,苹果还使用缩小因子1.15来进行降采样,这意味着例如,如果你有1242×2208,则应该除以1.15,这样你就可以在设备上获得1080×1920的全高清分辨率。 https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
我认为,最佳答案是:
它使用“points”作为计量单位。在视网膜设备上,1pt等于2个像素;在非视网膜设备上,1pt等于1个像素。
这个回答已经过时了。我提供了一个链接到developer.apple.com。
https://developer.apple.com/documentation/uikit/uiscreen/1617836-scale