20W以下的項目用不到,20W以上的項目用一點
ViewController.m
#import "ViewController.h"
#define KScreenWidth [UIScreen mainScreen].bounds.size.width
#define KScreenHeight [UIScreen mainScreen].bounds.size.height
@interface ViewController ()
{
UIDynamicAnimator *_animator;
UIView *_viewI;
UIView *_viewII;
}
@end
@implementation ViewController
- (IBAction)gravity:(UIButton *)sender {
/*——————————————————————————————————————————————————————————————————————————————-*/
//2??創建動力學行為 --> 并綁定item(動力學元素)
//重力行為
UIGravityBehavior *gravity = [[UIGravityBehavior alloc]initWithItems:@[_viewI]];
//3??仿真器添加重力行為
[_animator addBehavior:gravity];
//碰撞檢測行為
UICollisionBehavior *collision = [[UICollisionBehavior alloc]initWithItems:@[_viewI,_viewII]];
//開啟參考邊界
collision.translatesReferenceBoundsIntoBoundary = YES;
//仿真器添加碰撞行為
[_animator addBehavior:collision];
}
- (void)viewDidLoad {
[super viewDidLoad];
//1??實例化仿真器 referenceView:參考系
_animator = [[UIDynamicAnimator alloc]initWithReferenceView:self.view];
//創建viewI
_viewI = [[UIView alloc]initWithFrame:CGRectMake(KScreenWidth/2, 20, 50, 50)];
_viewI.backgroundColor = [UIColor blackColor];
_viewI.transform = CGAffineTransformMakeRotation(M_PI_4);
[self.view addSubview:_viewI];
//創建viewII
_viewII = [[UIView alloc]initWithFrame:CGRectMake(0, KScreenHeight/2, KScreenWidth*2/3, 10)];
_viewII.backgroundColor = [UIColor redColor];
[self.view addSubview:_viewII];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
屏幕快照 2016-03-12 下午4.31.41.png
屏幕快照 2016-03-12 下午4.31.00.png