2014-02-28 34 views
1

在我的應用程序中,用戶可以在UIImageView中手動放置一些UIViews。在處理結果時,我注意到UIViews位置(X,Y)或者寬度甚至高度都是浮點數,所以我有一些浮點數值,例如:100.22233在iOS座標系中,給定位置是以像素還是另一個特定單位?

我不明白它是如何可能的,因爲我需要這些值的像素,有沒有辦法將這些值轉換爲像素?

謝謝。

+0

你必須尋找錯誤的值 –

回答

0

UIView的性能如framebounds提供座標點,而不是像素。一點是非視網膜屏幕上的一個像素;一點是視網膜屏幕上的四個像素(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

通過這樣做,我不會鬆動0.22233?假設我擁有100.8像素,使用100像素會使我失去近1像素,不是嗎? –

+0

是的,這是截斷。如果您想舍入到最接近的整數值,則標準技術是在截斷之前添加0.5。我會更新我的答案來證明這一點。 – bneely

-3

點與像素點 在iOS中,所有座標值和距離均使用以點爲單位的浮點值指定。點的可測量的大小因設備而異,並且在很大程度上不相關。要了解點的主要內容是它們爲繪圖提供了一個固定的參考框架。

https://developer.apple.com/library/ios/documentation/windowsviews/conceptual/viewpg_iphoneos/WindowsandViews/WindowsandViews.html

https://developer.apple.com/library/ios/documentation/general/conceptual/Devpedia-CocoaApp/CoordinateSystem.html

你可以通過上述文件詳細

+2

你剽竊第一段[從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

0

的單位是分,這轉化爲1點== 1px的非視網膜和1點== 2px的視網膜。

如果你想整數值,您可以使用CGRectIntegral這樣的:

view.frame = CGRectIntegral(view.frame) 
相關問題