iOS basic animation

2020-08-05  本文已影响0人  松龄学编程
- (void)doShowupAnimation {
    CABasicAnimation* scaleAnima = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    scaleAnima.fromValue = @0.8;
    scaleAnima.toValue = @1;
    scaleAnima.timingFunction = [CAMediaTimingFunction functionWithName:
    kCAMediaTimingFunctionEaseIn];
    
    CABasicAnimation *opacityAnima = [CABasicAnimation animationWithKeyPath:@"opacity"];
    opacityAnima.fromValue = @(0);
    opacityAnima.toValue = @(1);
    opacityAnima.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    
    CAAnimationGroup *animaGroup = [CAAnimationGroup animation];
    animaGroup.duration = 0.15f;
    animaGroup.fillMode = kCAFillModeForwards;
    animaGroup.removedOnCompletion = NO;
    animaGroup.animations = @[scaleAnima,opacityAnima];
    [self.containerView.layer addAnimation:animaGroup forKey:@"showup"];
}

- (void)doDismissAnimation: (void(^)(Boolean)) completionHandler {
    CABasicAnimation* scaleAnima = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    scaleAnima.fromValue = @1;
    scaleAnima.toValue = @0.8;
    scaleAnima.timingFunction = [CAMediaTimingFunction functionWithName:
    kCAMediaTimingFunctionEaseIn];
    
    CABasicAnimation *opacityAnima = [CABasicAnimation animationWithKeyPath:@"opacity"];
    opacityAnima.fromValue = @(1);
    opacityAnima.toValue = @(0);
    opacityAnima.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    
    CAAnimationGroup *animaGroup = [CAAnimationGroup animation];
    animaGroup.duration = 0.15f;
    animaGroup.fillMode = kCAFillModeForwards;
    animaGroup.removedOnCompletion = NO;
    animaGroup.animations = @[scaleAnima,opacityAnima];
    animaGroup.delegate = self;
    [self.containerView.layer addAnimation:animaGroup forKey:@"dismiss"];
}
上一篇下一篇

猜你喜欢

热点阅读