UI Dynamics是UIKit的一个新组成部分,它向iOS中的视图提供了与物理学有关的功能和动画。可以让你向视图中引入力和物理属性,可以让你的视图弹跳,舞动,受重力影响等等。
下面通过样例,演示使用UIGravityBehavior和UICollisionBehavior给UIImageView添加重力和碰撞行为。
效果图如下:(苹果自上而下做自由落体,当掉到底部的时候还有碰撞效果。)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import
UIKit
class
ViewController
:
UIViewController
{
@IBOutlet
weak
var
imageView:
UIImageView
!
var
dynamicAnimator =
UIDynamicAnimator
()
override
func
viewDidLoad() {
super
.viewDidLoad()
dynamicAnimator =
UIDynamicAnimator
(referenceView:
self
.view)
//创建并添加重力行为
let
gravityBehavior =
UIGravityBehavior
(items: [
self
.imageView])
dynamicAnimator.addBehavior(gravityBehavior)
//创建并添加碰撞行为
let
collisionBehavior =
UICollisionBehavior
(items: [
self
.imageView])
collisionBehavior.translatesReferenceBoundsIntoBoundary =
true
dynamicAnimator.addBehavior(collisionBehavior)
}
override
func
didReceiveMemoryWarning() {
super
.didReceiveMemoryWarning()
}
}
|