2011-04-18 88 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时更改其大小,则会发生奇怪的事情。