2014-12-07 134 views
1

我在斯威夫特工作与XCode的6和雪碧套件,我想有y中的最大像素,所以我用这个函数:CGRectGet不能很好地工作

CGRectGetMaxY(frame) 

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

什么是错?

回答

3

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

  1. 检查您的资产文件夹以确保图像的定义应该如何。 (现在重要的是我们有@1x, @2x,@3x设备),他们的抽象设备的分辨率 -
  2. 检查scale设置
  3. UIKit的(和大多数的iOS)运行于点空间,所以尽量在这些坐标工作。

点空间:

原来的iPhone为320x480像素。为了让您的代码无需设备,当他们访问Retina时,屏幕和所有逻辑的分辨率保持在320x480。这些并不总是与像素相对应,所以术语变成“点”。这就是为什么当你抓住iPhone 4的屏幕尺寸时,它仍然报告320x480。

Apple's Documentation on this.

+1

这与'UIFont'无关。 “UIFont”所采取的措施是完全不同的措施。删除'UIFont'部分。 – Sulthan 2014-12-07 19:33:57

+0

@Sulthan编辑 – 2014-12-07 19:35:42

相关问题