gpt4 book ai didi

objective-c - iPad Retina 显示器的 XCode 坐标

转载 作者:可可西里 更新时间:2023-11-01 04:40:20 26 4
gpt4 key购买 nike

我刚刚在尝试为新的 iPad Retina 显示屏更新我的应用程序时注意到一件有趣的事情,Interface Builder 中的每个坐标仍然基于原始的 1024x768 分辨率。

我的意思是,如果我有一张 2048x1536 的图像以使其适合显示器的整个屏幕,我需要将其大小设置为 1024x768 而不是 2048x1536。

我只是好奇这是故意的吗?我可以将 Interface Builder 中的坐标系切换为特定于 Retina 吗?这有点烦人,因为我的一些图形在宽度或高度上不是原始图形的 2 倍。我似乎无法设置 1/2 坐标数,例如 1.5,它可以在 Interface Builder 中设置为 1 或 2。

此时我是否应该只用代码进行界面设计而忘记界面构建器?使我的图形在两个方向上正好保持 2 倍?还是只是忍受它?

最佳答案

iOS 上的界面基于点,而不是像素。图片必须是原始尺寸的 2 倍。

Points Versus Pixels In iOS there is a distinction between the coordinates you specify in your drawing code and the pixels of the underlying device. When using native drawing technologies such as Quartz, UIKit, and Core Animation, you specify coordinate values using a logical coordinate space, which measures distances in points. This logical coordinate system is decoupled from the device coordinate space used by the system frameworks to manage the pixels on the screen. The system automatically maps points in the logical coordinate space to pixels in the device coordinate space, but this mapping is not always one-to-one. This behavior leads to an important fact that you should always remember:

一个点不一定对应屏幕上的一个像素。 使用点(和逻辑坐标系)的目的是 提供与设备无关的一致大小的输出。这 点的实际大小无关紧要。积分的目的是提供 一个相对一致的比例,您可以在代码中使用它来指定 View 和渲染内容的大小和位置。积分是多少 实际上映射到像素是由系统处理的细节 构架。例如,在具有高分辨率屏幕的设备上, 一点宽的线实际上可能会导致两点宽的线 屏幕上的像素宽。结果是,如果你绘制相同的 两个类似设备上的内容,其中只有一个具有 高分辨率屏幕,内容看起来大小差不多 在两种设备上。

在你自己的绘图代码中,你大部分时间都使用点,但也有 有时您可能需要知道点是如何映射到像素的。 例如,在高分辨率屏幕上,您可能希望使用 额外的像素以在您的内容中提供额外的细节,或者您可能 只是想以微妙的方式调整内容的位置或大小。 在 iOS 4 及更高版本中,UIScreen、UIView、UIImage 和 CALayer 类 公开一个比例因子,告诉你点之间的关系 和该特定对象的像素。在 iOS 4 之前,这个比例因子 假定为 1.0,但在 iOS 4 及更高版本中它可能是 1.0 或 2.0,取决于底层设备的分辨率。将来,其他比例因子也可能成为可能。

来自 http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html

关于objective-c - iPad Retina 显示器的 XCode 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10078444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com