在我的應用程序中,用戶可以在UIImageView中手動放置一些UIViews。在處理結果時,我注意到UIViews位置(X,Y)或者寬度甚至高度都是浮點數,所以我有一些浮點數值,例如:100.22233在iOS座標系中,給定位置是以像素還是另一個特定單位?
我不明白它是如何可能的,因爲我需要這些值的像素,有沒有辦法將這些值轉換爲像素?
謝謝。
在我的應用程序中,用戶可以在UIImageView中手動放置一些UIViews。在處理結果時,我注意到UIViews位置(X,Y)或者寬度甚至高度都是浮點數,所以我有一些浮點數值,例如:100.22233在iOS座標系中,給定位置是以像素還是另一個特定單位?
我不明白它是如何可能的,因爲我需要這些值的像素,有沒有辦法將這些值轉換爲像素?
謝謝。
UIView的性能如frame
和bounds
提供座標點,而不是像素。一點是非視網膜屏幕上的一個像素;一點是視網膜屏幕上的四個像素(2x2矩形)。
如果你想爲你的座標整數值,可以截斷浮點值是這樣的:
CGFloat xLocation = (NSInteger)100.22233 + (CGFloat)0.0f;
如果你不是想和100.8啓動時四捨五入爲最接近的整數(101,正如您在留言建議),可以四捨五入它,這樣前添加0.5〜浮動:
CGFloat xLocation = (NSInteger)(100.8 + 0.5) + (CGFloat)0.0f;
通過這樣做,我不會鬆動0.22233?假設我擁有100.8像素,使用100像素會使我失去近1像素,不是嗎? –
是的,這是截斷。如果您想舍入到最接近的整數值,則標準技術是在截斷之前添加0.5。我會更新我的答案來證明這一點。 – bneely
點與像素點 在iOS中,所有座標值和距離均使用以點爲單位的浮點值指定。點的可測量的大小因設備而異,並且在很大程度上不相關。要了解點的主要內容是它們爲繪圖提供了一個固定的參考框架。
你可以通過上述文件詳細
你剽竊第一段[從iPad的應用程序開發傻瓜(HTTP://書.google.com /書?ID = uxJaSnf1f1IC&PG = PT277&LPG = PT277&DQ =%22all +座標+值+和+距離+爲+指定使用在+單位+稱爲+至+爲+點+浮點+值+ +。 + + A +點+的+可測量+尺寸+變化從+設備+ +至+設備%22&源= BL&OTS = CIN8A6p4-R&SIG = UMpf9nPKlBDXxSjvbkjO8xiGGGM&HL = EN&SA = X&EI = F-MQU9PzEsPwoATg1IK4Dg&VED = 0CDQQ6AEwAg#v = onepage)。請在您做這些事情時請歸因於您的來源,並將引用的內容加入大綱引文中。 – Undo
的單位是分,這轉化爲1點== 1px的非視網膜和1點== 2px的視網膜。
如果你想整數值,您可以使用CGRectIntegral
這樣的:
view.frame = CGRectIntegral(view.frame)
你必須尋找錯誤的值 –