这可能听起来很傻但是当我在Xcode中使用尺寸时,总框架尺寸等于320 * 568(宽*高)。我很好。但手机的分辨率实际上是不同的。 iphone 4S是640 * 960,5和下一代是640 * 1136。
我知道最后一个是xcode用作单位的两倍,所以我的问题是:
XCode使用什么单位测量?如果是像素,为什么不使用手机尺寸/分辨率作为参考?
它使用积分。在视网膜设备中,1个点等于4个像素。在非视网膜设备中,1个点等于1个像素。
特别是“点与像素”部分
编辑回答您的iphone 4S vs 5和下一代问题。这些是实际的屏幕尺寸。决议是不同的。 iPhone 4S和4屏幕为320x480点,或640x960像素。 iPhone 5,5C和5S屏幕为320x568点,或640x1136像素。如果您正在使用xib,您可能会看到之前的大小之一,因为xib已定义大小。这就是自动布局约束的用武之地。您可以在xib或storyboard中告诉您希望如何在屏幕中调整元素大小/重新定位元素。您可能正在使用struts和spring来决定如何在视图中重新定位项目而不是自动布局。没关系。即使您的xib / storyboard是iphone5大小,如果在iPhone4 / 4S模拟器或设备上运行应用程序时检查viewDidAppear方法中的屏幕大小,您将看到视图边界具有相应设备的大小。最好使用点而不是像素,因为它可以帮助开发人员从分辨率中抽象出来。您不必担心一个点有多少像素,您只需在屏幕上的点找到项目,让系统为您处理分辨率。
Xcode使用积分。但是在下一个解释的情况下,什么是点和多少像素 - >它取决于您使用的视网膜设备。基本上在非视网膜设备上1点= 1像素。在iphone 6plus和更新的“plus”型号上,苹果增加了3倍的分辨率。
在正常的视网膜设备上1点= 4像素,而不是2!然后苹果打包那个像素到点。在iPhone plus模型中,apple也使用了因子1.15的下采样,这意味着,例如,如果你有1242 * 2208,那么它应该在1.15上进行分割,你的设备上将获得1080 * 1920全高清。 https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
我相信最重要的答案是:
它使用积分。在视网膜设备中,1个点等于两个像素。在非视网膜设备中,1个点等于1个像素。
因为过时而错了。我提供了一个指向developer.apple.com的链接。
https://developer.apple.com/documentation/uikit/uiscreen/1617836-scale
另见UIKit Size (Points)
和UIKit Scale factor
:https://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/Displays/Displays.html