2011-04-18 50 views

回答

5

您可以用CAAnimation到視圖的層做到這一點:

CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
[ani setDuration:0.5]; 
[ani setRepeatCount:1]; 
[ani setFromValue:[NSNumber numberWithFloat:1.0]]; 
[ani setToValue:[NSNumber numberWithFloat:0.1]]; 
[ani setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
[[myView layer] addAnimation:ani forKey:@"zoom"]; 

這增加了一個動畫,使視圖縮小到它的中心。您可能需要添加設置代理並執行animationDidStop:finished:,然後在其中隱藏視圖並重置圖層的比例(請參閱CAAnimation reference)。

要創建相反效果,只需將值從和交換到值。

另請注意,雖然比例不是1.0,但frame屬性未定義。也就是說,如果您嘗試移動它或在圖層的縮放比例不是1.0時更改其大小,則會發生奇怪的事情。