Skip to main content
 首页 » 操作系统

swift之CGRectGet 不能正常工作

2024年01月01日35tintown

我在 Swift 中使用 XCode 6 和 Sprite Kit 工作,我想在 y 中拥有最大的像素,所以我正在使用这个函数:

CGRectGetMaxY(frame) 

我用 iPhone 6 模拟器测试了我的代码,所以值应该是 1334.0 但控制台只显示 667.0 ...

怎么了?

请您参考如下方法:

看来您是在“点空间”而不是“像素空间”中工作。根据您的设置,您的图像(我假设这是 1334 的来源)可能位于 @2x。分辨率。

  1. 检查您的 Assets 文件夹以确保图像定义正确。
  2. 检查您的 scale设置
  3. UIKit(和大部分 iOS)在点空间上运行,因此请尝试在这些坐标下工作 - 它们抽象设备分辨率(现在我们有 @1x, @2x, 和 @3x 设备很重要)。

点空间:

原始 iPhone 为 320x480 像素。为了让您的代码与设备无关,当他们转到 Retina 时,屏幕和所有逻辑都保持在 320x480 的分辨率。这些并不总是对应于像素,因此术语更改为“点”。这就是为什么当您抓取 iPhone 4 的屏幕尺寸时它仍然报告 320x480。

Apple's Documentation on this.