国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

IOS開發-UIDynamic(物理仿真)簡單使用

2019-11-14 18:52:34
字體:
來源:轉載
供稿:網友

UIDynamic是從IOS7開始引入的一種新技術,隸屬于UIKit框架,我們可以認為是一種物理引擎能模擬和仿真現實生活中的物理現象,比如重力,彈性碰撞等。

可以讓開發人員遠離物理公式的情況下,實現一些物理仿真效果。

這里簡單介紹一下重力,碰撞,捕捉的用法。

先介紹一下使用的大致步驟

  • 創建物理仿真器
  • 創建相應的物理仿真行為
  • 將物理仿真行為添加到物理仿真器

 

一,重力與碰撞

提前在StoryBoard準備兩個UIView,一個紅色,一個藍色。藍色在紅色的下方,保證紅色下落能碰到藍色的view。

 

 1     //創建物理仿真器 2     UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; 3     self.animator = animator;  //強引用animator,否則代碼塊執行完成后,將被釋放 4      5     //創建重力行為 6     UIGravityBehavior *gravityBehavior = [[UIGravityBehavior alloc] initWithItems:@[self.redView]]; 7      8     //設置一些屬性(可以不設置,不設則都為默認) 9     gravityBehavior.gravityDirection = CGVectorMake(0, 1);  //重力方向10     gravityBehavior.angle = M_PI*0.5;  //重力方向11     gravityBehavior.magnitude = 0.5; //重力加速度,1代表加速度是(每秒100個點)12     13     //把重力行為行為添加到仿真器14     [animator addBehavior:gravityBehavior];15     16     17     //創建碰撞行為18     UICollisionBehavior *collisionBehavior = [[UICollisionBehavior alloc] initWithItems:@[self.redView,self.blueView]];19     20     //設置碰撞邊界,不設置就會飛出屏幕,設置就會在屏幕邊框處產生碰撞效果21     collisionBehavior.translatesReferenceBoundsIntoBoundary = YES;22     23     //將碰撞行為加入物理仿真器24     [animator addBehavior:collisionBehavior];

代碼執行后,就能看到紅色的view下落,并撞擊藍色的View了。

 

二,捕捉行為

 1 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 2 { 3     //獲取觸摸點 4     UITouch *touch = [touches anyObject]; 5     CGPoint point = [touch locationInView:touch.view]; 6      7     //創建仿真仿真器 8     UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view]; 9     self.animator = animator;  //仿真器10     11     //創建捕捉行為12     UISnapBehavior *snapBehavior = [[UISnapBehavior alloc] initWithItem:self.redView snapToPoint:point];13     14     //設置反彈系數(反彈幅度越大,值越大,反彈幅度越小)15     snapBehavior.damping = 0.5;16     17     //將行為添加到仿真器18     [animator addBehavior:snapBehavior];19     20 }

 運行一下,點擊屏幕,可以發現,紅色的view就很調皮的跟著你的手指移動啦


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰台区| 侯马市| 金湖县| 鲁甸县| 磐石市| 五大连池市| 增城市| 余江县| 赤水市| 罗平县| 乌鲁木齐市| 凯里市| 定边县| 屏山县| 弥渡县| 洪江市| 扬州市| 呈贡县| 邹平县| 庄河市| 翁牛特旗| 石柱| 定州市| 台前县| 德化县| 本溪市| 宜宾市| 中江县| 金湖县| 平果县| 贺兰县| 漳浦县| 开封县| 九江市| 沧源| 贵港市| 沂水县| 交口县| 紫金县| 洛浦县| 隆尧县|