IOS开发 抛物线

来源:互联网 发布:淘宝怎么买东西 编辑:程序博客网 时间:2024/06/07 18:43

-(void)throwObject:(UIView *)obj from:(CGPoint)start to:(CGPoint)end height:(CGFloat)height duration:(CGFloat)duration{

    

    self.showingView = obj;

    

    //初始化抛物线的路径

    CGMutablePathRef path =CGPathCreateMutable();

    CGFloat cpx = (start.x + end.x) /2;

    CGFloat cpy = height;

    CGPathMoveToPoint(path, NULL, start.x, start.y);

    CGPathAddQuadCurveToPoint(path, NULL, cpx, cpy, end.x, end.y);

    

    

    

    CAKeyframeAnimation *animation = [CAKeyframeAnimationanimationWithKeyPath:@"position"];

    animation.path = path;

    

    CABasicAnimation *scaleAnimation = [CABasicAnimationanimationWithKeyPath:@"transform.scale"];

    scaleAnimation.autoreverses = YES;

    scaleAnimation.toValue = [NSNumbernumberWithFloat:0.6];

    

    CABasicAnimation *rotateAnimation = [CABasicAnimationanimationWithKeyPath:@"transform.rotation.y"];

    scaleAnimation.fromValue = [NSNumbernumberWithFloat:1];

    rotateAnimation.toValue = [NSNumbernumberWithFloat:6.0 *M_PI];

    rotateAnimation.duration = 0.8;

    

    CAAnimationGroup *groupAnimation = [CAAnimationGroupanimation];

    groupAnimation.delegate = self;

    groupAnimation.repeatCount = 1;

    groupAnimation.duration = duration;

    groupAnimation.removedOnCompletion = NO;

    groupAnimation.animations = @[scaleAnimation,animation,rotateAnimation];

    

    [obj.layer addAnimation:groupAnimationforKey:nil];

}


0 0
原创粉丝点击