2014-02-22 106 views
0

我有一個UIView,我想在動畫時獲取當前幀。 我使用的是基本的動畫:動畫時獲取UIView的當前幀

[UIView beginAnimations:@"MoveView" context:nil]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationDuration:3]; 
_testView.frame = CGRectMake(0, 100, 40, 40); 
[UIView commitAnimations]; 

和我有一個按鈕,而動畫應在第一個的當前位置添加一個UIView的,但是當我按下按鈕,它把它添加到終點位置動畫... 有什麼建議嗎? 提前謝謝!

回答

5

很可能你正在設置基於動畫視圖的modelLayer新添加的UIView屬性。讓我們嘗試建立基於UIView的性質動畫視圖的presentationLayer

通過此方法返回的層對象提供當前正在屏幕上顯示的層的近似值。當動畫正在進行時,您可以檢索此對象並使用它來獲取這些動畫的當前值。

CALayer Class Reference

+0

我試過,但不知何故,我無法訪問表示層的屬性.. –

+0

啊,我不得不投它。 ((CALayer *)_testView.layer.presentationLayer).frame 非常感謝:)) –

+0

這個呢? \t [_testView.layer presentationLayer] .position \t [_testView.layer presentationLayer] .bounds – vbali