UIview跳动效果

.m文件头部需引入:#import <QuartzCore/QuartzCore.h>

- (void)viewDidLoad {

 

UIView *bgView = [[UIView allocinitWithFrame:CGRectMake(1040300240)];

bgView.backgroundColor = [UIColor lightGrayColor];

bgView.tag = 150;

 

//需要跳动的图片

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"BFlyCircle.png"]];

[bgView addSubview:imgView];

imgView.tag = 151;

imgView.center = CGPointMake(150120);

 

//Go

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

[button setTitle:@"Go" forState:UIControlStateNormal];

button.frame = CGRectMake(10108025);

[button addTarget:self action:@selector(go:) forControlEvents:UIControlEventTouchUpInside];

 

[self.view addSubview:bgView];

[self.view addSubview:button];

 

[bgView release];

[imgView release];

 

    [super viewDidLoad];

}

 


- (void) go:(id) sender{

UIView *img = [self.view viewWithTag:151];

[CATransaction begin];

[CATransaction setValue:[NSNumber numberWithFloat:4.0] forKey:kCATransactionAnimationDuration];

 

// scale it down

CABasicAnimation *shrinkAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];

shrinkAnimation.delegate = self;

shrinkAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

shrinkAnimation.toValue = [NSNumber numberWithFloat:0.0];

[[img layeraddAnimation:shrinkAnimation forKey:@"shrinkAnimation"];

 

// fade it out

CABasicAnimation *fadeAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];

fadeAnimation.toValue = [NSNumber numberWithFloat:0.0];

fadeAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

[[img layeraddAnimation:fadeAnimation forKey:@"fadeAnimation"];

 

// make it jump a couple of times

CAKeyframeAnimation *positionAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

CGMutablePathRef positionPath = (__typeof(CGPathCreateMutable()))[NSMakeCollectable(CGPathCreateMutable()) autorelease];

CGPathMoveToPoint(positionPath, NULL, [img layer].position.x, [img layer].position.y);

 

//落下3

 

CGPathAddQuadCurveToPoint(positionPath, NULL, [img layer].position.x, -[img layer].position.y, [img layer].position.x, [img layer].position.y);

CGPathAddQuadCurveToPoint(positionPath, NULL, [img layer].position.x, -[img layer].position.y * 1.5, [img layer].position.x, [imglayer].position.y);

CGPathAddQuadCurveToPoint(positionPath, NULL, [img layer].position.x, -[img layer].position.y * 1.25, [img layer].position.x, [imglayer].position.y);


positionAnimation.path = positionPath;

positionAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

[[img layeraddAnimation:positionAnimation forKey:@"positionAnimation"];

 

[CATransaction commit];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值