Xcode - 查看屏幕大小

Posted

技术标签:

【中文标题】Xcode - 查看屏幕大小【英文标题】:Xcode - View Screen size 【发布时间】:2019-06-02 00:39:38 【问题描述】:

我正在学习使用 XCode 进行 ios 开发。我创建了一个项目来实现我一直在学习的一些东西,并开始学习如何管理图像大小和在不同大小的屏幕上的位置,即 iPhone 8、iPhone 8+、iPad 等。我目前正在使用 XCode 10 Beta 和我注意到主情节提要上的视图大小是我选择查看为的任何设备的实际屏幕大小的一半:。例如,如果我选择 View As: iPhone 8 屏幕尺寸是 375x667 而不是像实际设备那样是 750x1334。我发现这一点是因为我创建了一个 100x100 像素的方形图像,并认为我可以在屏幕上排列 7 个。令我惊讶的是,这些图像占用的屏幕是我计算的两倍。

谁能告诉我为什么 XCode 中的屏幕视图是实际屏幕大小的一半?

我是否总是假设我的图形是我真正想要的大小的一半?

编辑:这是我在 XCode 中所指内容的屏幕截图

当我单击 XCode 故事板窗格中的空视图时,这是它为视图显示的分辨率。此外,当我从 Illustrator 导出我的图形时,会使用 @1x​​、@2x 和 @3x 变体导出。但是,当我将图像放置在 100x100px 的视图中时,它会占用大约 1/3 的屏幕,而不是我在分辨率为 750x1334 的 iPhone 8 上所期望的屏幕的 1/7。

编辑#2:所以在玩了更多 XCode 之后,我确实看到视图的分辨率是点而不是像素,但是,在 iPhone 8+ 视图的这个屏幕截图中:

我假设屏幕分辨率为 1080x1920 @3x,iPhone 8+ 的点分辨率为 360x640 而不是 414x736。

【问题讨论】:

“我是否总是假设我的图形大小是我实际想要它们的一半?”不,有些屏幕是单分辨率的,有些是双分辨率的,有些是三分辨率的。你不应该在意。从点中区分像素,并了解资产目录中的单、双和三分辨率图像(或使用特殊命名约定)。 【参考方案1】:

这与点和像素之间的差异有关。在最初的 iPhone 发布时,它是每像素 1 点,但随着分辨率的提高,它变成了每点 2 倍像素(4 像素)。现在,在某些较新的设备上,分辨率为每点 3 倍像素(9 像素)。

https://www.google.com/amp/s/blog.fluidui.com/designing-for-mobile-101-pixels-points-and-resolutions/amp/

【讨论】:

技术上每点 2x2 像素(@2x 设备)和每点 3x3 像素(@3x 设备),因此 iPhone 7 将以 4 像素渲染每个点,而 iPhone X 将以 9 像素渲染每个点. 感谢您的链接,我实际上已经阅读了那个链接。我已经阅读了几个解释像素和点之间差异的网站。当我从 Illustrator 导出我的图形时,它会创建图像的 1x、2x 和 3x 变体,我确实将它们放在 assets.xcassests 文件夹中。 XCode 让我感到困惑的是,在设置 X/Y 坐标或 UIView 的宽度/高度时,视图的设置以像素为单位。因此,我假设如果我的图形是 100x100px,我会将 UIView 设置为 100x100px,但就像我说的,当图形几乎是宽度的 1/3 时,我感到很惊讶。 Ahhhh 经过一番玩耍后,我发现我编辑中的图像是点而不是像素.. @AlexanderClaussen 我想如果我想在 iPad 上使用与 iPhone 上相同的布局,我需要控制我的 UIView 大小通过代码?我需要为 iPad 和 iPhone 创建不同尺寸的图像吗?我将在另一个编辑中添加第二张图片,这让我对 iPhone 8+ 的屏幕尺寸感到困惑。

以上是关于Xcode - 查看屏幕大小的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Swift 根据屏幕大小移动 UIElements

xcode 屏幕大小是固定的 - 每个设备都不会改变

Xcode - 如何在不更改 UIScreen 大小的情况下添加 xib 启动屏幕

Xcode 5 / iOS7:尝试添加约束以在 iPhone 3.5" 和 4" 屏幕之间调整大小

Xcode Storyboard - 如何在不同的 iPhone 屏幕尺寸之间更改元素的字体大小和位置

如何使用 Xcode 8 上的自动布局调整对象的大小以适应不同的屏幕尺寸?