2014-12-07 141 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

相關問題