首页 文章

Xcode 中的测量单位是多少?

提问于
浏览
17

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

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

XCode 使用什么单位测量?如果是像素,为什么不用手机 size/resolution 作为参考?

3 回答

  • 23

    它使用积分。在视网膜设备中,1 个点等于 4 个像素。在 non-retina 设备中,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 中告诉您希望元素在屏幕中显示为 resized/relocated。您可能正在使用 struts 和 spring 来决定如何在视图中重新定位项目而不是自动布局。没关系。即使您的 xib/storyboard 是 iphone5 大小,如果在 iPhone4/4S 模拟器或设备上运行应用程序时检查 viewDidAppear 方法中屏幕的大小,您将看到视图边界具有相应设备的大小。最好使用点而不是像素,因为它可以帮助开发人员从分辨率中抽象出来。您不必担心一个点有多少像素,您只需在屏幕上的点找到项目,让系统为您处理分辨率。

  • 5

    Xcode 10.1,Swift 4.2 回答

    Xcode 使用积分。但是在下一个解释的情况下,什么是点和多少像素 - >它取决于您使用的视网膜设备。基本上在 non-retina 设备上 1 点= 1pixel。在 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 个点等于两个像素。在 non-retina 设备中,1 个点等于 1 个像素。

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

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

    在此输入图像描述

相关问题