我剛剛開始iOS繪圖編程,發現座標系與Mac OS X不同,基本上iOS上的原點位於左上角而不是左下角蘋果電腦。只是想知道是否有人知道蘋果爲什麼會做出這樣的改變,並且它會改變Mac的未來嗎?我還在文檔中看到iOS上的座標系不能翻轉,所以我需要重寫代碼?ios視圖座標系
ios視圖座標系
回答
您對座標系是否正確。如果我沒有記錯,原因是大多數平臺的繪圖系統使用左上角作爲座標原點。 Mac OS X使用較低的左側,因爲這是NeXT使用的。
它可能在未來的Mac上不會改變,因爲那樣每個人都必須完全重寫他們的繪圖代碼。
從Windows更改爲Mac時很難適應,現在我必須回去! (瘋狂地尖叫) – 2011-06-16 17:29:42
我發現了一個簡單的方法來解決這個問題。而是採用了標準的CALayer對象作爲你的基地層,創建自己的類(基於CALayer的),有一個電話:
- (void)layoutSublayers;
{
for(sprite* aSprite in self.sublayers)
{
// -(y pos -1) flips the coordinate system to start in the lower left
aSprite.position = CGPointMake(aSprite.actualPosition.x, -(aSprite.actualPosition.y - 1.0));
}
}
精靈僅僅是一個的CALayer類的添加CGPoint財產,actualPosition。更新該值以移動精靈。
'-layoutSublayers'被非常頻繁地調用。當然,第二次被調用時,你會將每一層的y位置再次翻回原來的位置? – 2012-05-13 21:35:39
糟糕,我在複製代碼時犯了一個錯誤。我正在將這些問題的其他部分放在一邊,因爲它們與問題無關。我想我有點兒超前了。更新。 – charliehorse55 2012-05-13 22:07:30
- 1. iOS座標系錯了
- 2. 座標系中的視圖ID
- 3. 座標系,秒圖
- 4. iOS目標C將座標從絕對圖像位置轉換爲我的視圖座標系
- 5. 轉換地圖座標到座標系
- 6. 核心圖形座標系
- 7. iOS座標系超出範圍
- 8. 笛卡爾座標系統android和ios
- 9. Android MotionEvent和視圖座標
- 10. 瞭解Qt的圖形視圖座標系統
- 11. iOS系統圖標
- 12. 將視圖端口座標轉換爲實際圖像座標
- 13. D3D11座標系
- 14. Matlab座標系?
- 15. Cocos2d座標系
- 16. OpenLayer座標系
- 17. libGDX座標系
- 18. PDFBox - 座標系
- 19. WPF座標系
- 20. MKOverlayView座標系
- 21. 計算新參考座標系中圖像像素的座標
- 22. 將極座標圖像轉換爲直角座標系
- 23. 圖像變換座標,圓柱座標系
- 24. iOS spriteKit相對於視圖座標的子節點位置
- 25. 獲取創建子視圖的動態座標ios
- 26. iOS控件座標
- 27. iOS的CATransform3D座標
- 28. iOS Swift - CoreLocation座標
- 29. 查找圖像視圖內的座標?
- 30. SVG背景圖案使用全局座標系而非局部座標系
是的,你需要調整你的代碼。 – PengOne 2011-06-16 17:23:27