iPhone和iPad的独立坐标系

Posted

技术标签:

【中文标题】iPhone和iPad的独立坐标系【英文标题】:Independent coordinate system for iPhone and iPad 【发布时间】:2014-02-09 01:51:38 【问题描述】:

我正在为 iPhone 和 iPad 制作一个通用应用程序,我只有一个 iPad 可以测试。我想知道是否有一种方法可以创建一个可以使用的坐标系,以便 UI 元素(自制)或特别是节点/精灵节点可以在两个屏幕上处于相对相同的位置?

例如,假设我的通用坐标为 1,1。这可以在 iPhone 上转换为 1,1,但在 iPad 上说是 2,3(数字凭空出现)。

感谢任何帮助,谢谢。

【问题讨论】:

【参考方案1】:

我最近使用的方法是相对于我的 SKScene 宽度和高度来确定任何位置。如果你定义一个位置如下:

SKScene *myScene;
SKSpriteNode *mySpriteNode;
mySpriteNode.position = CGPointMake(myScene.size.width/35.0, myScene.size.height/20.0);

您的精灵节点将在任何设备上保持相同的相对位置 - 假设您的 SKScene 始终占据整个屏幕或屏幕的同一部分。

【讨论】:

啊,我没想到,谢谢!我会假设字体大小缩放遵循相同的规则? 随着不同设备(iPad、iPhone4、iPhone5)的宽度/高度比例变化,您需要注意精灵的大小。如果您将上面的示例不仅应用于位置,还应用于大小,您将失去精灵宽度和高度之间的比例,这可能不是很好。因此,在这种情况下,您可能需要做出决定,并将精灵的宽度和高度作为 SKScene 的宽度或高度的相对值。

以上是关于iPhone和iPad的独立坐标系的主要内容,如果未能解决你的问题,请参考以下文章

Ipad/Iphone 版本,2 个目标,1 个代码库

iPad编程

iPhone 纵向/横向和坐标系

将 ScrollView 放大到特定坐标 (IPAD)

iOS - 将 iPhone Build 转换为 iPad

iPhone正确的横向窗口坐标