UIKit Dynamics (一) 概述
UIKit Dynamics (二) 重力
UIKit Dynamics (三) 碰撞
UIKit Dynamics (四) 急停
UIKit Dynamics (五) 施力
UISnapBehavior
UISnapBehavior 定義了一個 item 將會移動到一個特定的位置,并且在改位置附近進行一個類似于急停的彈簧效果。即實現了兩部分動畫,移動動畫和急停動畫。
使用
UISnapBehavior 的使用非常簡單,只有一個實例化函數。函數傳遞兩個參數,一個是要移動的 item,另一個是移動到的位置。
CGPoint anchorPoint = [sender locationInView:_container];
_snapBehavior = [[UISnapBehavior alloc] initWithItem:_box snapToPoint:anchorPoint];
[_animator addBehavior:_snapBehavior];
配置
UISnapBehavior 的配置也很簡單,只有兩個屬性,一個屬性 snapPoint 是將要移動到的位置,初始值是實例化函數傳入的值;另一個屬性 damping 阻尼即控制急停過程中組力的大小,取值范圍為 0~1,默認值為 0.5,damping 越大急停越穩定,越小越劇烈。
@property (nonatomic, assign) CGPoint snapPoint
@property (nonatomic, assign) CGFloat damping;
Snap
本文 demo 是 Snap 頁面,可以通過拖動 slider 調節 dumpling 大小,項目地址