Core Animation CALayer动画
来源:互联网 发布:java对特殊字符转义 编辑:程序博客网 时间:2024/06/05 04:33
-(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);
[imagedrawInRect:rect];
CGContextAddEllipseInRect(context, rect);
CGContextStrokePath(context);
UIImage *newimg =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newimg;
}
-(void)footballView
{
UIImage* image = [UIImageimageNamed:@"football.png"];
UIImage* image1 = [selfcircleImage:image withParam:0];
self.imageView.image = image1;
self.imageView.frame =CGRectMake(0,self.topLayoutGuide.length,100, 100);
self.imageView.userInteractionEnabled =YES;
UITapGestureRecognizer* tapGR = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(startFootball:)];
[self.imageViewaddGestureRecognizer:tapGR];
UIImageView* imageView1 = [[UIImageViewalloc]initWithImage:image];
imageView1.layer.masksToBounds =YES;
imageView1.layer.cornerRadius =50;
imageView1.frame =CGRectMake(200,200, 100, 100);
[self.viewaddSubview:imageView1];
}
-(void)viewDidLayoutSubviews
{
[superviewDidLayoutSubviews];
[selffootballView];
}
-(void)startFootball:(UITapGestureRecognizer*)sender
{
// 按照路径移动
CGFloat fWidth =self.view.frame.size.width;
CGFloat fHeight =self.view.frame.size.height;
UIBezierPath* path = [UIBezierPathbezierPath];
[pathmoveToPoint:self.imageView.center];
[path addQuadCurveToPoint:CGPointMake(fWidth-100, fHeight-50)controlPoint:CGPointMake(fWidth-150,50)];
CAKeyframeAnimation* movePathAnimation = [CAKeyframeAnimationanimationWithKeyPath:@"position"];
movePathAnimation.path = path.CGPath;
movePathAnimation.removedOnCompletion =YES;
// 必须用transform才有动画
CABasicAnimation* scaleAnimation = [CABasicAnimationanimationWithKeyPath:@"transform"];
scaleAnimation.fromValue = [NSValuevalueWithCATransform3D:CATransform3DIdentity];
scaleAnimation.toValue = [NSValuevalueWithCATransform3D:CATransform3DMakeScale(0.1,0.1, 1.0)];
movePathAnimation.removedOnCompletion =YES;
CAAnimationGroup * animationGroup = [CAAnimationGroupanimation];
CABasicAnimation* alphaAnimation = [CABasicAnimationanimationWithKeyPath:@"opacity"];
alphaAnimation.fromValue =@1.0;
alphaAnimation.toValue = [NSNumbernumberWithInt:0];
movePathAnimation.removedOnCompletion =YES;
animationGroup.animations =@[movePathAnimation,scaleAnimation,alphaAnimation];
animationGroup.duration =2;
[self.imageView.layeraddAnimation:animationGroup forKey:nil];
}
- Core Animation CALayer动画
- CALayer&Core Animation核心动画
- ios CALayer Core Animation UIView动画封装
- UIView, CALayer,Core Animation
- Core Animation 之 CALayer
- 【IOS功能实现】之Core Animation动画开发总结(CALayer)
- iOS开发-CALayer/Core Animation/UIView动画封装
- CALayer 的简介 和Core Animation动画效果 A
- core animation calayer的详解
- 17day-Core Animation&CALayer
- Core Animation动画学习2——自定义CALayer的动画
- Core Animation基础介绍、简单使用CALayer以及多种动画效果
- Core Animation基础介绍、简单使用CALayer以及多种动画效果
- Core Animation基础介绍、简单使用CALayer以及多种动画效果
- Core Animation基础介绍、简单使用CALayer以及多种动画效果
- Core Animation动画学习1——CALayer的基本使用
- ios开发——使用CALayer和Core Animation做动画效果
- Core Animation 动画
- Git学习笔记(二)
- QT单例模式的宏实现
- OpenJDK和JDK区别
- javascript 观察者模式
- 有符号数与无符号数的四则运算
- Core Animation CALayer动画
- 系列1—BabeLua入门
- 数独求解
- Light OJ 1258 Making Huge Palindromes 末尾添加最少字符变回文串
- 我们感叹青春的流逝、却不能停下脚步
- 企业供应链管理与贸易融资的那些事儿
- 无缝滚动
- Javascript: unterminated string literal 解决方法 ---- json 包含换行及其他一些特殊字符
- 引用了第三方jar文件的项目打成jar包的办法