我在 Swift 中使用 XCode 6 和 Sprite Kit 工作,我想在 y 中拥有最大的像素,所以我正在使用这个函数:
CGRectGetMaxY(frame)
我用 iPhone 6 模拟器测试了我的代码,所以值应该是 1334.0 但控制台只显示 667.0 ...
怎么了?
请您参考如下方法:
看来您是在“点空间”而不是“像素空间”中工作。根据您的设置,您的图像(我假设这是 1334 的来源)可能位于 @2x。分辨率。
- 检查您的 Assets 文件夹以确保图像定义正确。
- 检查您的
scale设置 - UIKit(和大部分 iOS)在点空间上运行,因此请尝试在这些坐标下工作 - 它们抽象设备分辨率(现在我们有
@1x, @2x,和@3x设备很重要)。
点空间:
原始 iPhone 为 320x480 像素。为了让您的代码与设备无关,当他们转到 Retina 时,屏幕和所有逻辑都保持在 320x480 的分辨率。这些并不总是对应于像素,因此术语更改为“点”。这就是为什么当您抓取 iPhone 4 的屏幕尺寸时它仍然报告 320x480。
