一、计算动画开始结束点位置

方法:
- (CGPoint)convertPoint:(CGPoint)point toView:(nullable UIView *)view;
1) 动画开始位置fromCenter
复制代码 代码如下:
CGPoint fromCenter = [animationView convertPoint:CGPointMake(animationView.frame.size.width * 0.5f, animationView.frame.size.height * 0.5f) toView:keyWindow];
2)动画结束位置endCenter
复制代码 代码如下:
CGPoint endCenter = [endView convertPoint:CGPointMake(endView.frame.size.width * 0.5f, endView.frame.size.height * 0.5f) toView:keyWindow];
二、计算贝塞尔曲线(抛物线)的两个控制点
1)先设置控制点距最高点(fromCenter或endCenter)的水平距离controlPointEY,本篇默认controlPointEY = 100,即图1中点controlPointC到点A的距离。
2)计算控制点相对于点A的距离controlPointEX,即controlPoint1到A距离或controlPoint2到A距离,本篇设置为fromCenter.x到endCenter.x的1/4,即controlPointEX = (endCenter.x - fromCenter.x) * 0.25f;
3)计算两个控制点
CGPoint controlPoint1 = CGPointMake(controlPointCX - controlPointEX, controlPointCY - controlPointEY); CGPoint controlPoint2 = CGPointMake(controlPointCX + controlPointEX, controlPointCY - controlPointEY);
三、复制动画的layer
NSString *str = ((UIButton *)animationView).titleLabel.text; _animationLayer = [CATextLayer layer]; _animationLayer.bounds = animationView.bounds; _animationLayer.position = fromCenter; _animationLayer.alignmentMode = kCAAlignmentCenter;//文字对齐方式 _animationLayer.wrapped = YES; _animationLayer.contentsScale = [UIScreen mainScreen].scale; _animationLayer.string = str; _animationLayer.backgroundColor = [UIColor redColor].CGColor; [keyWindow.layer addSublayer:_animationLayer];
四、动画组合
1)运动轨迹(抛物线)
UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:fromCenter]; [path addCurveToPoint:endCenter controlPoint1:controlPoint1 controlPoint2:controlPoint2]; CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; pathAnimation.path = path.CGPath;
2)旋转起来
CABasicAnimation *rotateAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; rotateAnimation.removedOnCompletion = YES; rotateAnimation.fromValue = [NSNumber numberWithFloat:0]; rotateAnimation.toValue = [NSNumber numberWithFloat:10 * M_PI]; rotateAnimation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]
3)缩放动画
CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; scaleAnimation.removedOnCompletion = NO; scaleAnimation.fromValue = [NSNumber numberWithFloat:1.0]; scaleAnimation.toValue = [NSNumber numberWithFloat:0.2];
4)透明度动画
CABasicAnimation *alphaAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; alphaAnimation.removedOnCompletion = NO; alphaAnimation.fromValue = [NSNumber numberWithFloat:1.0]; alphaAnimation.toValue = [NSNumber numberWithFloat:0.1];
5)动画组合
CAAnimationGroup *groups = [CAAnimationGroup animation]; groups.animations = @[pathAnimation,rotateAnimation, scaleAnimation, alphaAnimation]; groups.duration = kShoppingCartDuration; groups.removedOnCompletion=NO; groups.fillMode=kCAFillModeForwards; groups.delegate = self; [_animationLayer addAnimation:groups forKey:@"group"];
动画效果:
下载地址:ShoppingCartAnimation_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ios购物车动画效果
# ios
# 添加购物车动画
# ios加入购物车动画
# iOS实现自定义购物车角标显示购物数量(添加商品时角标抖动 Vie)
# IOS购物车界面实现效果示例
# iOS实现电商购物车界面示例
# iOS搭建简易购物车页面
# 下载地址
# 相对于
# 设置为
# 大家多多
# 塞尔
# 点距
# endView
# controlPointEX
# controlPointEY
# li
# ul
# controlPointC
# CATextLayer
# _animationLayer
# text
# alignmentMode
# position
# bounds
# titleLabel
# layer
相关文章:
建站主机选购指南与交易推荐:核心配置解析
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何快速搭建高效WAP手机网站?
网站制作服务平台,有什么网站可以发布本地服务信息?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
Python路径拼接规范_跨平台处理说明【指导】
如何确认建站备案号应放置的具体位置?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
制作网站公司那家好,网络公司是做什么的?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
如何快速生成橙子建站落地页链接?
网站app免费制作软件,能免费看各大网站视频的手机app?
如何安全更换建站之星模板并保留数据?
定制建站流程解析:需求评估与SEO优化功能开发指南
Thinkphp 中 distinct 的用法解析
如何挑选最适合建站的高性能VPS主机?
如何通过山东自助建站平台快速注册域名?
,sp开头的版面叫什么?
如何用花生壳三步快速搭建专属网站?
网站制作难吗安全吗,做一个网站需要多久时间?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何配置FTP站点权限与安全设置?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
建站之星如何配置系统实现高效建站?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
,石家庄四十八中学官网?
建站之星导航配置指南:自助建站与SEO优化全解析
如何通过宝塔面板实现本地网站访问?
建站主机选哪种环境更利于SEO优化?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
c# await 一个已经完成的Task会发生什么
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
南平网站制作公司,2025年南平市事业单位报名时间?
建站主机功能解析:服务器选择与快速搭建指南
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
在线教育网站制作平台,山西立德教育官网?
微课制作网站有哪些,微课网怎么进?
,柠檬视频怎样兑换vip?
建站之星ASP如何实现CMS高效搭建与安全管理?
大连网站制作公司哪家好一点,大连买房网站哪个好?
南京网站制作费用,南京远驱官方网站?
广平建站公司哪家专业可靠?如何选择?
制作网站怎么制作,*游戏网站怎么搭建?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
*请认真填写需求信息,我们会在24小时内与您取得联系。