所以最近我一直在玩動畫,並且遇到了定位點。我明白,默認情況下,定位點(0.5,0.5)是視圖的中間,您可以對其進行更改,以便定位點位於其中一個邊框上。我的問題是,如果我想讓視圖圍繞視圖的超視圖中的特定點旋轉,我該如何繼續?任何幫助是極大的讚賞關於定位點的問題
關於定位點的問題
回答
我想通了自己:我想要的錨點在左邊屏幕邊框,所以我做了以下內容:
CGFloat subviewX = ((1/view.frame.size.width)*view.frame.origin.x) * (-1);
CGFloat subviewY = 0.5;
結帳這個問題how to rotate CALayer at one point
而且 - 雖然我猜你可能已經做到了這一點 - 有核心動畫編程指南,Layer Geometry and Transforms的讀取。
你的問題的不同之處在於你要指定一個在視圖的超級視圖中的旋轉點。要做到這一點,您想要將該超級視點轉換爲子視圖。你可以這樣做,如下:
- 把你的超級界限,例如(0,0,500,500)
- 以您的子視圖框爲例, (50,50,100,100)
- 帶上您的超級視角旋轉點,例如(75,75)
轉換其相對於一個點到子視圖如下:
CGFloat subviewX = 75.0f - subview.frame.x; CGFloat subviewX = 75.0f - subview.frame.y;
這給了預期的結果(25.0f,25.0f)
要旋轉具有CABasicAnimation的CALayer,請查看此問題的選定答案:CALayer with rotation animation。
謝謝你,但我有CABasicAnimation這樣做,所以你給我這裏不適用於我的情況...任何想法如何做到這一點?謝謝! – kopproduction
不用擔心!請參閱上面的編輯鏈接 –
的一些代碼好吧,我現在有點困惑..鏈接真的只是告訴我如何用CABasicAnimation做旋轉,我已經知道了。我正在尋找的基本上是你上面做的,計算superview中的旋轉點,但是你所做的不適合我,因爲圖層中的座標系是不同的,如果(0.5,0.5)是中心,例如,25將會在屏幕上顯示......這讓我發瘋,還有什麼可以給我的建議嗎? – kopproduction
- 1. 關於定位自己,一些問題
- 2. 關於我的點火開關問題?
- 3. WPF關於定位器的數據綁定問題
- 4. 關於C位域的問題
- 5. 關於Silverlight測量單位的問題
- 6. 關於Win7的問題64位
- 7. 關於多點觸摸的問題
- 8. 關於VS2010中斷點的問題C++
- 9. 關於浮點類型的問題
- 10. 關於站點地圖的問題
- 11. UIView的定位相關的問題(IOS)
- 12. 關於顯示SCNView的選定位置的問題
- 13. Telerik的RadFormDecorator的RadControls - 拖車問題關於定位
- 14. 關於我的定位後臺服務的問題
- 15. 與定位相關的問題
- 16. 關於鍍鉻標籤的問題:懸停和相對定位
- 17. 關於定位x64時GetOwnerModuleFromTcpEntry的奇怪問題
- 18. 關於服務定位器實現的問題
- 19. 關於使用CSS網格進行定位的一般問題
- 20. 關於使用CSS和jQuery定位div的問題
- 21. Swift 3中的節點定位問題
- 22. 關於| =的問題#
- 23. 右鍵點擊問題關於Jquery
- 24. 關於assy和堆有點新問題
- 25. 關於圖片點擊問題
- 26. 關於點擊 - jQuery事件問題
- 27. 關於POST和重定向的問題
- 28. 關於C++命名約定的問題
- 29. 關於重定向的Django問題
- 30. 關於主定理證明的問題
優秀。將要回答,但今天有一些bug被捆綁了! –