我有一個CGRect
;我可以將其座標轉移到用戶座標系中,即左下角到頂部,而不是左上角到底部。有沒有任何預定義的方法,或者我需要手動計算它?提前致謝。更改用戶座標系統的正確值
6
A
回答
12
要將原點位於左下角(讓我們稱之爲傳統座標系給出名稱)的座標系轉換爲原點位於左上角(iPhone座標系)的系統需要知道CGRect
所在視圖的大小,因爲視圖是矩形的參考。
例如,假設您有一個尺寸爲200 x 300的視圖,並且CGRect
爲CGRectMake(10, 20, 30, 40)
。 CGRect
的大小將保持不變。所有將改變的都是原點 - 實際上,只有y座標將會改變,而不是x座標,因爲傳統的和iPhone的座標系統都從左側開始(左下角一個,左上角一個)。
所以我們會有類似CGRectMake(10, y, 30, 40)
的東西。
- (CGRect)rectangle:(CGRect)oldRect fromTraditionalToiPhoneCoordinatesWithReferenceViewOfSize:(CGSize)aSize
{
CGFloat oldY = oldRect.origin.y; // This is the old y measured from the bottom left.
CGFloat newY = aSize.height - oldY - oldRect.size.height;
CGRect newRect = oldRect;
newRect.origin.y = newY;
return newRect;
}
新的矩形,作爲從iPhone(左上)的座標系統測量,將是:CGRectMake(10, 300 - 20 - 40, 30, 40) = CGRectMake(10, 240, 30, 40)
。
希望這使得圖像更清晰
+0
+1非常感謝您的回答,它的確非常好... – ajay 2011-03-30 08:43:19
相關問題
- 1. 更改網格座標系統
- 2. WPF座標系統更新
- 3. 如何在VTK系統中更改座標系的原點?
- 4. 更改SKNode.obstaclesFromNodeBounds中使用的座標系?
- 5. cocos2d座標系統
- 6. 如何將45°-135°座標系統的座標值轉換爲地球座標系統?
- 7. 如何更改Compose.jl中的座標系?
- 8. 更改WPF中Canvas的座標系
- 9. 更改LibGDX中的3D座標系
- 10. OpenGL座標系統混淆
- 11. 座標系統轉換
- 12. PyQt的QGraphicView鼠標座標系統
- 13. 如何更改Three.js座標系以匹配DOM轉換座標?
- 14. 圓柱座標系統的哪個部分是用戶正在看
- 15. 處理系統區域設置更改的正確方法
- 16. 在GLSL頂點着色器中使用正確的座標系
- 17. 關於Andengine座標系統的困惑
- 18. x和y的座標分離系統
- 19. Android上的OpenGL ES座標系統?
- 20. 如何在android中更改座標值?
- 21. 用3d物體正確設置座標的座標
- 22. 更改鼠標座標
- 23. 更改叉()系統調用
- 24. 系統ID和客戶端更改管理系統別名
- 25. 更改Matplotlib的座標
- 26. Facebook是否更改其測試用戶帳戶的系統?
- 27. 座標不正確getLocationOnScreen/getLocationInWindow
- 28. 更改Epicor ERP10標準系統代碼
- 29. 更改系統托盤圖標圖像
- 30. android更改目標操作系統
答案取決於你的那個轉換的CGRect使用。你打算如何處理轉換後的矩形? – Anurag 2011-03-30 06:17:22
我在默認座標系(用戶)中有一個直線矩形值,現在我想要在iphone使用座標系中的座標。 – ajay 2011-03-30 06:25:55
因此,您在座標系中有一個矩形,其原點位於左下角,並且您想將其轉換爲iOS座標系?你能發表一個你在默認座標系下的矩形的例子嗎? – Anurag 2011-03-30 06:28:27