2013-09-28 137 views
1

我正在動畫增長的樹。像樹一樣,我希望我的UIImage保持在同一個地方,這樣當我擴展它時,它看起來會增長。ios增長動畫CGAffineTransformMakeScale左右移動

現在它的跳躍,即從中心增長 - 我需要它從底部增長。

有沒有辦法設置動畫的原點/底座。所以規模動畫從底部開始工作。

希望是有道理的。這裏是我的代碼:

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
tree.transform = CGAffineTransformMakeScale(1.0f, 1.25f); 
[UIView commitAnimations]; 

回答

3

您不妨看看的CALayer類,這和設置anchorPoint到centerbottom

- (void)viewDidLayoutSubviews 
{ 
    self.outletTestView.layer.anchorPoint = CGPointMake(0.5, 1.0); 
    self.outletTestView.layer.position = CGPointMake(100, 300); 
} 

不要忘記包括:

#import <QuartzCore/QuartzCore.h> 

並用於縮放:

CGAffineTransform CGAffineTransformScale (CGAffineTransform t, CGFloat sx, CGFloat sy); 

像這樣:

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
tree.transform = CGAffineTransformScale(tree.transform, 1.0f, 1.25f); 
[UIView commitAnimations]; 
+0

遺憾的是它仍然跳轉到正確的。我在viewDidLoad函數中設置了一次。我必須在變換之前設置它嗎? – FaddishWorm

+0

如果我沒有QuartzCore那麼就不會有動畫。當我動畫時,它轉化爲右側。 – FaddishWorm

+0

是的,工作。這是viewDidLayoutSubviews訣竅 – FaddishWorm