全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

iOS添加购物车动画效果示例

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

方法:

- (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];

二、计算贝塞尔曲线(抛物线)的两个控制点

  • controlPoint1是控制点1
  • controlPoint2是控制点2
  • A是controlPoint1和controlPoint2的中点
  • controlPointC是fromCenter和B的中点

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小时内与您取得联系。