//
// ViewController.m
// UIDynamic
//
// Created by hq on 16/5/3.
// Copyright © 2016年 hanqing. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *ball;
@property (weak, nonatomic) IBOutlet UIView *bottomVIew;
@property(nonatomic,strong) UIDynamicAnimator *anim;
@end
@implementation ViewController
-(UIDynamicAnimator *)anim{
//设置仿真范围
if (_anim==nil) {
_anim=[[UIDynamicAnimator alloc]initWithReferenceView:self.view];
}
return _anim;
}
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
UITouch *touch=[touches anyObject];
CGPoint currentP=[touch locationInView:self.view];
//创建一个捕捉行为
UISnapBehavior *snap=[[UISnapBehavior alloc]initWithItem:self.ball snapToPoint:currentP];
//防抖系数,越小,越抖,最大值为1
snap.damping=0;
//必须清空上一次的才能继续使用
[self.anim removeAllBehaviors];
[self.anim addBehavior:snap];
}
-(void) testCollisionBehaviorByPath{
//创建一个碰撞行为
UICollisionBehavior *coll=[[UICollisionBehavior alloc] init];
//添加一个碰撞的边界(路径)
UIBezierPath *path=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width)];
[coll addBoundaryWithIdentifier:@"path" forPath:path];
[coll addItem:self.ball];
//[coll addItem:self.bottomVIew];
UIGravityBehavior *grav=[[UIGravityBehavior alloc] init];
[grav addItem:self.ball];
[self.anim addBehavior:coll];
[self.anim addBehavior:grav];
}
//碰撞边界为用线围起来的一块区域
-(void) testCollisionBehavior1{
//创建一个碰撞行为
UICollisionBehavior *coll=[[UICollisionBehavior alloc] init];
//添加一个碰撞的边界
[coll addBoundaryWithIdentifier:@"line1" fromPoint:CGPointMake(0, 0) toPoint:CGPointMake(0, self.view.bounds.size.height*0.5)];
[coll addBoundaryWithIdentifier:@"line2" fromPoint:CGPointMake(0, self.view.bounds.size.height*0.5) toPoint:CGPointMake(self.view.bounds.size.width, self.view.bounds.size.height)];
[coll addItem:self.ball];
[coll addItem:self.bottomVIew];
UIGravityBehavior *grav=[[UIGravityBehavior alloc] init];
[grav addItem:self.ball];
[self.anim addBehavior:coll];
[self.anim addBehavior:grav];
}
//重力仿真器
-(void) testGravity{
//创建xx的仿真行为
UIGravityBehavior *grav=[[UIGravityBehavior alloc]init];
[grav addItem:self.ball];
[self.anim addBehavior:grav];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
UIDynamic使用
最新推荐文章于 2017-04-24 11:18:00 发布
440

被折叠的 条评论
为什么被折叠?



