-(void)closeAction
{
CAKeyframeAnimation *hideAnimation = CAKeyframeAnimation animationWithKeyPath:@"transform"];
hideAnimation.duration = 0.4;
hideAnimation.values = @NSValue valueWithCATransform3D:CATransform3DMakeScale(1.1f, 1.1f, 1.0f)],
NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)],
NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0f, 0.0f, 0.0f)]];
hideAnimation.keyTimes = @@0.2f, @0.5f, @0.75f];
hideAnimation.timingFunctions = @CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],
CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],
CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
hideAnimation.delegate = self;
self.layer addAnimation:hideAnimation forKey:nil];
}
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {
//;
}
以上的代码实现了一个view先放大一点然后缩小至0的动画
但是动画完成后view会回到原来的大小状态
在hideAnimation的delegate中hidden或者remove也会出现先迅速回到原来大小然后立即消失的“一闪”问题
求大神帮忙!