UIView を固定して衝突オブジェクトとして配置することはできますか? 私の例では、ボックス ビューが落下し、フロア ビューと衝突します。フロアビューをその場所にとどめたいのですが、ボックスに当たった後に移動しています。どうすれば一箇所に接着できますか (オブジェクトを拡大したり、UIView (UIBezierPath など) 以外のオブジェクトを使用したりしたくありません)。
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *start = [[UIButton alloc]initWithFrame:CGRectMake(200, 20, 40, 40)];
start.backgroundColor = [UIColor redColor];
[start addTarget:self action:@selector(start) forControlEvents:UIControlEventTouchUpInside];
[main addSubview:start];
self.box1 = [[UIView alloc]initWithFrame:CGRectMake(50, 0, 20, 20)];
self.box1.backgroundColor = [UIColor redColor];
[main addSubview:self.box1];
self.floor = [[UIView alloc]initWithFrame:CGRectMake(0, main.frame.size.height-20, main.frame.size.width, 200)];
self.floor.backgroundColor = [UIColor lightGrayColor];
[main addSubview:self.floor];
}
- (void) start {
self.animation = [[UIDynamicAnimator alloc]initWithReferenceView:self.view];
UIGravityBehavior *gravity = [[UIGravityBehavior alloc]initWithItems:@[self.box1]];
[self.animation addBehavior:gravity];
UICollisionBehavior *collision = [[UICollisionBehavior alloc]initWithItems:@[self.box1, self.floor]];
[self.animation addBehavior:collision];
}