2010-11-16 74 views
1

我正在動畫一個簡單的UIView轉換,並希望能夠在動畫期間訪問轉換的值。獲取動畫屬性的值

[UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.7];

CGAffineTransform rot=CGAffineTransformMakeRotation(90); 
CGAffineTransform scale=CGAffineTransformMakeScale(1, 4.0f/3.0f); 
viewFinder.transform=CGAffineTransformConcat(scale, rot); 

[UIView commitAnimations]; 

然而,當我犯了動畫,並開始查詢viewFinder.transform.a我得到的初始值,然後只有在動畫的結尾我會得到更新的版本。所以我有一種感覺,CoreAnimation在其動畫堆棧上存儲了一個單獨的轉換並將其動畫化。任何人都知道如何在動畫過程中獲得變換?

回答

1

好的,解決了。有點棘手,感覺就像一個黑客,但它的工作原理

我在通過一個NSTimer

CGAffineTransform rot =[viewFinder.layer.presentationLayer affineTransform]; 

一再呼籲方法查詢此我想一個可以爲任何其他財產做同樣的