2012-12-04 15:38 775人阅读 评论(0) 收藏 举报
  1. float angle = 360 / 6;
  2. for (int i = 0; i < 6; i++) {
  3. UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  4. float offsetAngle = angle * i;
  5. button.bounds = CGRectMake(0, 0, 32, 32);
  6. button.center = CGPointMake(cos(offsetAngle * RADIANS) * 160, sin(offsetAngle * RADIANS) * 160);
  7. button.tag = i;
  8. CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
  9. CGMutablePathRef path = CGPathCreateMutable();
  10. pathAnimation.calculationMode = kCAAnimationPaced;
  11. pathAnimation.fillMode = kCAFillModeForwards;
  12. pathAnimation.removedOnCompletion = NO;
  13. pathAnimation.duration = 2;
  14. CGPathMoveToPoint(path, NULL, button.center.x, button.center.y);
  15. CGPathAddArc(path, NULL, 0, 0, 160, offsetAngle * M_PI/180, offsetAngle * M_PI/180 + M_PI, YES);
  16. pathAnimation.path = path;
  17. CGPathRelease(path);
  18. [button.layer addAnimation:pathAnimation forKey:@"curve"];
  19. [tabBarView addSubview:button];
  20. }

因为只是Layer的内容发生的位置变化,其实UIView还是在原来的位置上,如果需要使用应该在Animation结束后重新设定UIView的位置.

顺便翻译一下原文:

CGPathAddArc (

CGMutablePathRef path,

const CGAffineTransform *m,

CGFloat x,

CGFloat y,

CGFloat radius,

CGFloat startAngle,

CGFloat endAngle,

bool clockwise

);

path:动画的路径;

m:layer的transform;

x:其实x和y是什么我还没弄明白,根据原文应该是弧的圆心点,但我设置过,这更像是偏移量;

y:同上;

startAngle:起始的角度点,零度是与x轴相交点,度数为顺时针;

endAngle:结束的角度点;

clockwis:是否顺时针.

最新文章

  1. 协议分析 - DHCP协议解码详解
  2. 基于Ruby的watir-webdriver自动化测试方案与实施(四)
  3. 文件批量上传的工具,要实现暂停继续、断点续传等功能(使用QtNetwork和QHttpMultiPart,和定时器检查超时)
  4. TDirectory.GetParent获取指定目录的父目录
  5. php访问方法外变量
  6. uwsgi服务启动(start)停止(stop)重新装载(reload)
  7. IDEA+MySQL实现登录注册的注册验证时出现 Cannot resolve query parameter &#39;2&#39;
  8. 链表加bfs求补图联通块
  9. [ARCH] 1、virtualbox中安装archlinux+i3桌面,并做简单美化
  10. node.js 高级功能
  11. 《从Lucene到Elasticsearch:全文检索实战》学习笔记二
  12. 大数据学习路线分享-Hbase shell的基本操作完整流程
  13. Jfinal适用于条件查询的动态SQL语句生成工具
  14. 页面练习my blog day51
  15. 机器学习入门-Knn算法
  16. 面向对象 Java练习
  17. AloneQIan---第一次作业
  18. tensorflow session 和 graph
  19. 不要怂,就是GAN (生成式对抗网络) (三):判别器和生成器 TensorFlow Model
  20. iOS开发心得

热门文章

  1. CentOS 6 网络设置修改 指定IP地址 DNS 网关
  2. Linux 平台下阅读源码的工具链
  3. bzoj 1415: [Noi2005]聪聪和可可【期望dp+bfs】
  4. bzoj 1556: 墓地秘密【状压dp+spfa】
  5. docker保存对容器的修改
  6. [POI2008]Sta
  7. 题解报告:hdu 1160 FatMouse&#39;s Speed(LIS+记录路径)
  8. SpringCloud开发学习总结(四)—— 客户端负载均衡Ribbon
  9. 【学习笔记】SIFT尺度不变特征 (配合UCF-CRCV课程视频)
  10. Polynomial Division 数学题