導(dǎo)語
UIDynamicItemBehavior
提供了更多前面幾種動(dòng)力學(xué)行為不曾提到的動(dòng)力學(xué)屬性焰宣。UIDynamicItemBehavior
不像其它幾種行為具有比較具象的特征恋追,它的作用更像是一個(gè)擴(kuò)展,可以為一個(gè)動(dòng)態(tài)元素設(shè)置更多較為具體的動(dòng)力學(xué)屬性痢站。
構(gòu)造
UIDynamicItemBehavior * itemBehavior =
[[UIDynamicItemBehavior alloc] initWithItems:@[_dynamicItem1View]];
-(instancetype)initWithItems:(NSArray<id <UIDynamicItem>> *)items NS_DESIGNATED_INITIALIZER;
屬性
-
彈性系數(shù)
用于碰撞行為的動(dòng)態(tài)元素的彈性量。
@property (readwrite, nonatomic) CGFloat elasticity;
默認(rèn)值為0.0
霉猛,有效范圍從0.0(沒有碰撞)
到1.0(完全碰撞)
。
-
摩擦系數(shù)
用于兩個(gè)發(fā)生摩擦的動(dòng)態(tài)元素哪痰。
@property (readwrite, nonatomic) CGFloat friction;
默認(rèn)值0.0(沒有摩擦)
,當(dāng)值為1.0
時(shí)久妆,強(qiáng)烈摩擦晌杰。如果設(shè)置更高的摩擦,可以使用更高的數(shù)值筷弦。
-
相對(duì)質(zhì)量密度
用于動(dòng)態(tài)元素相對(duì)密度肋演。其連同動(dòng)態(tài)元素大小,決定動(dòng)態(tài)元素的有效質(zhì)量烂琴。其參與的動(dòng)力學(xué)行為包括摩擦爹殊、碰撞、推動(dòng)等...
@property (readwrite, nonatomic) CGFloat density;
默認(rèn)值為1.0
奸绷。
假設(shè)你有兩個(gè)具有相同密度但大小不同的動(dòng)態(tài)元素:
元素一
尺寸為100x100像素點(diǎn)
梗夸,元素二
尺寸為100x200像素點(diǎn)
。
這個(gè)例子中号醉,元素二
的有效質(zhì)量是元素一
的兩倍反症。
在一個(gè)彈性碰撞中,這些元素根據(jù)它們的相對(duì)質(zhì)量表現(xiàn)出自然的動(dòng)量守恒畔派。元素一
密度為1.0
铅碍,當(dāng)施加一個(gè)力(通過推動(dòng)行為)1.0
級(jí)時(shí),加速度為100點(diǎn)/s2
线椰。
-
線速度阻尼
用于動(dòng)態(tài)元素所受線速度阻尼大小胞谈。
@property (readwrite, nonatomic) CGFloat resistance;
默認(rèn)值是0.0
。有效范圍從0.0(沒有速度阻尼)
到CGFLOAT_MAX(最大速度阻尼)
憨愉。當(dāng)設(shè)置為1.0
烦绳,動(dòng)態(tài)元素會(huì)立馬停止就像沒有力量作用于它一樣。
-
角速度阻尼
用于動(dòng)態(tài)元素所受角速度阻尼大小配紫。
@property (readwrite, nonatomic) CGFloat angularResistance;
有效范圍從0.0
到CGFLOAT_MAX
径密,值越大,角速度阻尼越大笨蚁,旋轉(zhuǎn)減速越快睹晒,到停止。
-
電荷
好吧括细,物理太差伪很,不懂,請(qǐng)高手指教奋单,只能官翻了锉试。
@property (readwrite, nonatomic) CGFloat charge NS_AVAILABLE_IOS(9_0);
電荷數(shù)確定動(dòng)態(tài)元素與電場(chǎng)和磁場(chǎng)相互作用的程度。這個(gè)屬性值沒有單位览濒,電磁場(chǎng)強(qiáng)度由你調(diào)控的適當(dāng)?shù)闹祦頉Q定呆盖。默認(rèn)值0.0
拖云。
-
是否固定
用于指定動(dòng)態(tài)元素是否固定在當(dāng)前位置。
@property (nonatomic, getter = isAnchored) BOOL anchored NS_AVAILABLE_IOS(9_0);
當(dāng)一個(gè)動(dòng)態(tài)元素被設(shè)置為固定后应又,該元素參與碰撞宙项,但不受碰撞影響,仿佛成為一個(gè)碰撞邊界株扛。默認(rèn)值為NO
尤筐。
方法
- 添加一個(gè)動(dòng)態(tài)元素,并設(shè)置它的角速度
-(void)addAngularVelocity:(CGFloat)velocity forItem:(id<UIDynamicItem>)item;
默認(rèn)值為0.0
洞就,單位弧度/秒
盆繁。設(shè)置一個(gè)負(fù)值,減少一定角速度旬蟋。
- 添加一個(gè)動(dòng)態(tài)元素油昂,并設(shè)置它的線速度
-(void)addLinearVelocity:(CGPoint)velocity forItem:(id<UIDynamicItem>)item;
默認(rèn)值為0.0
,單位點(diǎn)/秒
倾贰。設(shè)置一個(gè)負(fù)值冕碟,減少一定線速度。
- 獲得動(dòng)態(tài)元素的角速度
-(CGFloat)angularVelocityForItem:(id<UIDynamicItem>)item;
- 獲得動(dòng)態(tài)元素的線速度
-(CGPoint)linearVelocityForItem:(id<UIDynamicItem>)item;
版權(quán)聲明:出自MajorLMJ技術(shù)博客的原創(chuàng)作品 躁染,轉(zhuǎn)載時(shí)必須注明出處及相應(yīng)鏈接鸣哀!