2011-07-05 41 views
2

我有一個UIView子類,我能夠成功使用UIView動畫。uiview CGAffine向後移動動畫

這個UIView也有子視圖,我也希望能夠UIView動畫。

但是,似乎每當我創建一個動畫並將其應用於父視圖時,它都能正常工作,但是如果將動畫應用於子視圖,則會向後動畫。

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate: self]; 
[UIView setAnimationDuration:2]; 
[UIView setAnimationDelay:2]; 

CGAffineTransform scaleTransform = CGAffineTransformScale(self.transform, 2, 2 ); 
self.transform = scaleTransform; 
[UIView commitAnimations]; 

然後此正常工作:

例如,如果我以2的因子縮放我UIView父(個體)(以寬度和高度的兩倍)。

但如果我這樣做對孩子:

UIView *myObj = [[self subviews] objectAtIndex:0]; 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate: self]; 
[UIView setAnimationDuration:2]; 
[UIView setAnimationDelay:2]; 

CGAffineTransform scaleTransform = CGAffineTransformScale(myObj.transform, 2, 2 ); 
myObj.transform = scaleTransform; 
[UIView commitAnimations]; 

它不工作。視覺上發生的事情是,子視圖立即縮小,然後延遲縮小到原始大小。

如果我記錄轉換參數,它看起來對父母和孩子都是一樣的,我試過設置CGAffineTransformIdentity

任何想法可能是什麼問題?

+0

順便說一句,旋轉工作正常,我只有一個縮放問題。 – ader

回答

0

我重寫layoutSubviews並在那裏我分配的大小/位置的基於設備的方向是衝突.doh!