假設我有一個小的UIView作爲較大UIView的子/子視圖,並且該子可以通過一些CGAffineTransforms移動。父母如何知道該視圖的真正「中心」在其座標系內?我曾嘗試使用convertPoint例程與任何由child.center返回,但它不工作......是'中心'完全假在這種情況下,或者我只是使用錯誤的方法?CGAffineTransform獲取UIView的中心
2
A
回答
4
編輯:
做了一些測試後,我注意到以下幾點:
UIViews沒有一個anchorPoint財產,但他們有一箇中心性質。該中心屬性始終將變換後適當的計算,除了平移轉換,爲你必須做到以下幾點:
CGPoint realCenter = CGPointMake(myView.center.x + myView.frame.origin.x, ...);
至於CALayer
S,他們確實有一個anchorPoint財產,但他們缺乏一箇中心物業。所以,你想要做的是通過對位置屬性,anchorPoint屬性和圖層的轉換進行計算來手動計算中心。
我無法提供任何代碼,因爲我不確定您使用的是哪種方法,但是要將其包裝起來,您必須以任何方式推出自己的中心計算器。
請看圖片下方仔細(斯坦福iPhone開發課程的PPT提供):
施加一個45°後:
應用任何旋轉之前自轉:
結論:
通知老中心如何爲(300,225)和新中心,以及不是新!一樣的。如果你正在做的一切正確,你的中心應該是一樣的。如果你想要計算另一個觀點,那麼你自己就必須這樣做。
請注意框架是如何從(200,100,200,250)變爲(140,65,320,320)的。這正是UIKit的魔力。
相關問題
- 1. UIView上的iOS CGAffineTransform
- 2. 獲取CGAffineTransform的旋轉
- 3. 的UIView旋轉後調整與CGAffineTransform
- 4. CGAffineTransform中的UnsafePointer <CGAffineTransform>
- 5. 如何在CGAffineTransform之後獲得UIView的角度?
- 6. 在Swift中獲取任何UIView的中心
- 7. CGAffineTransform CGPoint中心動畫「無效」
- 8. UIInterfaceOrientation,CGAffineTransform,框架,邊界和中心
- 9. 獲取的UIView
- 10. 應用絕對CGAffineTransform *到一個UIView
- 11. UIView UITableViewController的中心
- 12. UIView中心,幀
- 13. 獲取方向更改後UIView的更新中心位置iOS8
- 14. 如何從兩個CGSizes獲取CGAffineTransform?
- 15. UIView中心X UIImageView
- 16. UIView的旋轉中心
- 17. iOS - UIView的中心內容
- 18. 從uiview中獲取圖像
- 19. 從C#/ C++中的iPhone電影獲取矩陣(CGAffineTransform)信息
- 20. 應用CGAffineTransform後從圖像中獲取圖像的新大小
- 21. CGAffineTransform無法在UIView動畫完成塊中工作
- 22. 獲取UIView類型
- 23. 從TiUIView獲取UIView
- 24. 獲取UIView的高度
- 25. 獲取UIView的容器/ UIViewController
- 26. 如何從當前動畫視圖中獲取當前CGAffineTransform?
- 27. 獲取比例值並在CGAffineTransform中旋轉值xcode
- 28. 縮小中心UIView動畫
- 29. 查找體系座標的UIView後變換應用於(CGAffineTransform)
- 30. 在另一個UIView下獲取UIView
我不知道在CGAffineTransforms中如何表現中心行爲,但你不應該使用convertPoint,因爲中心被認爲是「在其超級視圖的座標系統內」。 (或者,也許我誤解了你自己的意思。) –
請舉例說明你正在使用的代碼和你看到的值。 「不工作」對任何人都沒有幫助。 – jrturton