Xcode中的测量单位是多少?

问题描述 投票:17回答:3

这可能听起来很傻但是当我在Xcode中使用尺寸时,总框架尺寸等于320 * 568(宽*高)。我很好。但手机的分辨率实际上是不同的。 iphone 4S是640 * 960,5和下一代是640 * 1136。

我知道最后一个是xcode用作单位的两倍,所以我的问题是:

XCode使用什么单位测量?如果是像素,为什么不使用手机尺寸/分辨率作为参考?

ios xcode frame units-of-measurement
3个回答
23
投票

它使用积分。在视网膜设备中,1个点等于4个像素。在非视网膜设备中,1个点等于1个像素。

查看苹果在ios上绘图和打印的文档。 https://developer.apple.com/library/ios/documentation/2ddrawing/conceptual/drawingprintingios/GraphicsDrawingOverview/GraphicsDrawingOverview.html#//apple_ref/doc/uid/TP40010156-CH14-SW7

特别是“点与像素”部分

编辑回答您的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方法中的屏幕大小,您将看到视图边界具有相应设备的大小。最好使用点而不是像素,因为它可以帮助开发人员从分辨率中抽象出来。您不必担心一个点有多少像素,您只需在屏幕上的点找到项目,让系统为您处理分辨率。


5
投票

Xcode 10.1,Swift 4.2回答

Xcode使用积分。但是在下一个解释的情况下,什么是点和多少像素 - >它取决于您使用的视网膜设备。基本上在非视网膜设备上1点= 1像素。在iphone 6plus和更新的“plus”型号上,苹果增加了3倍的分辨率。 enter image description here

在正常的视网膜设备上1点= 4像素,而不是2!然后苹果打包那个像素到点。在iPhone plus模型中,apple也使用了因子1.15的下采样,这意味着,例如,如果你有1242 * 2208,那么它应该在1.15上进行分割,你的设备上将获得1080 * 1920全高清。 https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

enter image description here

我相信最重要的答案是:

它使用积分。在视网膜设备中,1个点等于两个像素。在非视网膜设备中,1个点等于1个像素。

因为过时而错了。我提供了一个指向developer.apple.com的链接。

https://developer.apple.com/documentation/uikit/uiscreen/1617836-scale

enter image description here


© www.soinside.com 2019 - 2024. All rights reserved.