-(UIImage*) circleImage:(UIImage*) image withParam:(CGFloat) inset
{
UIGraphicsBeginImageContext(image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
//設置線寬
CGContextSetLineWidth(context, 12);
//線色
CGContextSetStrokeColorWithColor(context,self.view.backgroundColor.CGColor);
// 設置圖片區域
CGRect rect = CGRectMake(inset, inset, image.size.width - inset * 2.0f, image.size.height - inset * 2.0f);
CGContextAddEllipseInRect(context, rect);
CGContextClip(context);
[image drawInRect:rect];
CGContextAddEllipseInRect(context, rect);
CGContextStrokePath(context);
UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newimg;
}
-(void)footballView
{
UIImage* image = [UIImage imageNamed:@"football.png"];
UIImage* image1 = [self circleImage:image withParam:0];
self.imageView.image = image1;
self.imageView.frame = CGRectMake(0, self.topLayoutGuide.length, 100, 100);
self.imageView.userInteractionEnabled = YES;
UITapGestureRecognizer* tapGR = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(startFootball:)];
[self.imageView addGestureRecognizer:tapGR];
UIImageView* imageView1 = [[UIImageView alloc]initWithImage:image];
imageView1.layer.masksToBounds = YES;
imageView1.layer.cornerRadius = 50;
imageView1.frame = CGRectMake(200, 200, 100, 100);
[self.view addSubview:imageView1];
}
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
[self footballView];
}
-(void)startFootball:(UITapGestureRecognizer*)sender
{
// 按照路徑移動
CGFloat fWidth = self.view.frame.size.width;
CGFloat fHeight = self.view.frame.size.height;
UIBezierPath* path = [UIBezierPath bezierPath];
[path moveToPoint:self.imageView.center];
[path addQuadCurveToPoint:CGPointMake(fWidth-100, fHeight-50) controlPoint:CGPointMake(fWidth-150, 50)];
CAKeyframeAnimation* movePathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
movePathAnimation.path = path.CGPath;
movePathAnimation.removedOnCompletion = YES;
// 必須用transform纔有動畫
CABasicAnimation* scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
scaleAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
scaleAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];
movePathAnimation.removedOnCompletion = YES;
CAAnimationGroup * animationGroup = [CAAnimationGroup animation];
CABasicAnimation* alphaAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
alphaAnimation.fromValue = @1.0;
alphaAnimation.toValue = [NSNumber numberWithInt:0];
movePathAnimation.removedOnCompletion = YES;
animationGroup.animations = @[movePathAnimation,scaleAnimation,alphaAnimation];
animationGroup.duration = 2;
[self.imageView.layer addAnimation:animationGroup forKey:nil];
}