iOS7 UIKit Dynamics 的初步研究
这回开始学习iOS7新的UIKit Dynamics,我看有人翻译成UIKit 力学,我觉得倒挺贴切的,所以就借来用一用。
- 提供动力xing为的上下文
- 根据ref view确定坐标系
- 控制动力引擎
- 维护着动力行为的状态
- UIAttachmentBehavior
- UICollisionBehavior
- UIDynamicItemBehavior
- UIGravityBehavior
- UIPushBehavior
- UISnapBehavior
1 UIDynamicAnimator *_animator; 2 UIGravityBehavior *_gravity;
1 - (void)startAnimator 2 { 3 //新建一个view来做试验的物体。 4 UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(110, 60, 100, 100)]; 5 [testView setBackgroundColor:[UIColor blueColor]]; 6 [self.view addSubview:testView]; 7 //初始化animator并且给它一个参考坐标。 8 _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; 9 _gravity = [[UIGravityBehavior alloc] initWithItems:@[testView]]; 10 [_animator addBehavior:_gravity]; 11 }
1 [_gravity setMagnitude:100];
- angle:控制物体飘向的角度
- graviteDirection:也是控制角度,只不过是用x,y的增量来表示
1 UICollisionBehavior * _collision;
1 _collision = [[UICollisionBehavior alloc] initWithItems:@[testView]]; 2 [_collision setTranslatesReferenceBoundsIntoBoundary:YES]; 3 [_animator addBehavior:_collision];
1 [_collision addBoundaryWithIdentifier:@"barrier" fromPoint:CGPointMake(0, 360) toPoint:CGPointMake(240, 360)];
1 [_collision setCollisionDelegate:self];
1 - (void)collisionBehavior:(UICollisionBehavior *)behavior beganContactForItem:(id<UIDynamicItem>)item withBoundaryIdentifier:(id<NSCopying>)identifier atPoint:(CGPoint)p 2 { 3 UIView *v = (UIView *)item; 4 [v setBackgroundColor:[UIColor redColor]]; 5 [UIView animateWithDuration:0.3 animations:^{ 6 [v setBackgroundColor:[UIColor blueColor]]; 7 }]; 8 9 }
– collisionBehavior:beganContactForItem:withBoundaryIdentifier:atPoint:
– collisionBehavior:beganContactForItem:withItem:atPoint:
– collisionBehavior:endedContactForItem:withBoundaryIdentifier:
– collisionBehavior:endedContactForItem:withItem:
- UICollisionBehaviorModeItems
- UICollisionBehaviorModeEverything
- UICollisionBehaviorModeBoundaries
1 UIView *testView2 = [[UIView alloc] initWithFrame:CGRectMake(110, 170, 100, 100)]; 2 [testView2 setBackgroundColor:[UIColor greenColor]]; 3 [self.view addSubview:testView2];
1 _gravity = [[UIGravityBehavior alloc] initWithItems:@[testView,testView2]];
1 _attachment = [[UIAttachmentBehavior alloc] initWithItem:testView attachedToItem:testView2]; 2 3 [_animator addBehavior:_attachment];
anchorPoint:依附的点
attachedBehaviorType:依附的类型
damping:两个物体之间的阻尼系数,其实就是两个物体被缩小距离的时候造成的影响程度
frequency:震荡频率,加大的时候就发现下面那个方块荡来当去= =
length:吸附的长度
1 UIDynamicItemBehavior *_dynamicItem;
1 _dynamicItem = [[UIDynamicItemBehavior alloc] initWithItems:@[testView]]; 2 [_dynamicItem addAngularVelocity:5 forItem:testView]; 3 [_animator addBehavior:_dynamicItem];
1 [_dynamicItem addLinearVelocity:CGPointMake(500, 100) forItem:testView];
allowsRotation:是否允许旋转
angularResistance:设置旋转时的阻力
density:物体的密度
elasticity:物体的弹性,直接影响物体撞到东西之后怎么弹
friction:物体的摩擦力
resistance:物体受到的阻力
1 _push = [[UIPushBehavior alloc] initWithItems:@[testView] mode:UIPushBehaviorModeInstantaneous]; 2 [_push setAngle:1]; 3 [_push setMagnitude:0.2]; 4 [_animator addBehavior:_push];
1 _snap = [[UISnapBehavior alloc] initWithItem:testView snapToPoint:CGPointMake(400, 400)]; 2 [_animator addBehavior:_snap];
1 [_snap setDamping:10];
转载于:https://www.cnblogs.com/adamleung/p/3497709.html
iOS7 UIKit Dynamics 的初步研究相关推荐
- iOS7—Day by day—Day0:UIKit Dynamics
这篇文章是天天品尝iOS7甜点系列的一部分,你可以查看完整的系列目录:天天品尝iOS7甜点 伴随着介绍苹果的iOS7,将会使你清晰的认清设备和现实世界的相互作用,UIKit Dynamics就是众多新 ...
- iOS7新特征汇总[05]初窥UIKit动力(UIKit Dynamics)
本文转载自:破船之家 本文地址:iOS7新特征汇总[05]初窥UIKit动力(UIKit Dynamics) QQ20130615-6 此图来此WWDC视频 小引 通过之前的4篇文章,笔者把iOS7中 ...
- UIKit Dynamics入门
看E问文章时,发现了Dynamics,uikit动力,找了不错的入门文章. From:http://blog.csdn.net/baecheung/article/details/11911061 本 ...
- GWT与Eclipse集成开发初步研究
GWT与Eclipse集成开发初步研究 原文:http://blog.sina.com.cn/s/blog_415bd707010086cy.html JDK6.0 下载.安装.配置 http://b ...
- 支持小米java文件阅读器_小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究...
2011年对着书本Android应用开发揭秘,写了2个月的HelloWorld. 现在想复习并深入,我没有耐心再去一点点地敲代码了. 4年前自己是个学生,实习,现在有工作,只能业余时间研究. 这一点是 ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究
2011年对着书本Android应用开发揭秘,写了2个月的HelloWorld. 现在想复习并深入,我没有耐心再去一点点地敲代码了. 4年前自己是个学生,实习,现在有工作,只能业余时间研究. 这一点是 ...
- 基于聚类算法的IMT-2030应用场景初步研究
[摘 要]IMT系统已进入新的研究周期,支持的业务种类将更为丰富,业务品质将更加高级,同时业务特性表现为更多的维度和更大的范围,如何对业务进行客观而高效的分析以得到典型的应用场景,对于IMT系统的标 ...
- iOS UIKit Dynamics(物理碰撞,动画)
早期技术文章搬家,原文链接 大部分人或许觉得动画用UIView 或是CoreAnimation的动画效果,那为何还需要UIKit 中的UIDynamic? 答:UIDynamic 为使用者提供更符合现 ...
- 图解用工具对BHO做初步研究
一 BHO和浏览器劫持 BHO Browser Helper Objects (也被称为 BHOs) 是com组件,扮演着ie插件的角色.BHOs可以在某种程度上定制IE,如:用户交互的修改,网页过滤 ...
最新文章
- ListView分页
- youtube根据channelId抓取栏目
- nullnullanimate用法
- jquery 赋值时不触发change事件解决
- Rancher 2.0正式发布:简化、加速企业Kubernetes落地
- 去除ring3层的Debug标志
- 计算机 旧词新说_如何使旧计算机再次有用
- Python练习:五到七章的练习题
- 【高校宿舍管理系统】第十一章 学生系统
- Logstash读取Kafka数据写入HDFS详解
- 汇编语言ADDC可以把C清零吗,常用汇编语言指令及解释
- chrome插件开发(Demo案例)
- WebSockt面试题
- 国家铁路局招聘面试题汇集
- Echarts地图案例
- 《富爸爸穷爸爸》:为什么你很穷
- matlab 投票法_二维解析张量投票算法研究
- 智慧城市建设带给安防企业的机遇与挑战
- ZPL 打印条码、二维码及小票(中文/汉字),生成条码、二维码图片【Asp.Net】-含示例代码
- windows安装Pillow报错找不到zlib
热门文章
- android 骨架屏刷新动画,ios - 原生骨架屏,网络加载过渡动画的封装
- 大数据架构详解_【数据如何驱动增长】(3)大数据背景下的数仓建设 amp; 数据分层架构设计...
- 新生代农民工必看:模拟器eNSP安装教程(附下载链接)
- 小白都能看懂的网络性能测试
- 邀请函|2021 云原生实战峰会,邀请您免费现场参会报名
- coso全称是什么_国际贸易术语的全称是什么?
- php5.3二进制包,php使用pack处理二进制文件的方法
- WGAN的提出背景以及解决方案
- 【CV秋季划】人脸算法那么多,如何循序渐进地学习好?
- 2022年全球及中国角鲨烯和角鲨烷市场需求规模与十四五竞争策略研究报告