2015-01-07 1 views
0

Я начинаю программировать на ios. Когда я использую UiCollisionBehavior, чтобы установить границы для бросающих элементов, я добавил следующий код ViewController.mИспользование UICollisionBehavior для установки границ

#import "ViewController.h" 


@interface ViewController() 

@end 


@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; 
    myView.backgroundColor = [UIColor grayColor]; 
    UIView *barrier = [[UIView alloc]initWithFrame:CGRectMake(0, 300, 130, 20)]; 
    barrier.backgroundColor = [UIColor redColor]; 
    [self.view addSubview: barrier]; 
    [self.view addSubview:myView]; 
    _animator = [[UIDynamicAnimator alloc]initWithReferenceView:myView]; 
    _gravity = [[UIGravityBehavior alloc]initWithItems:@[myView]]; 
    [_animator addBehavior:_gravity]; 
    _collision = [[UICollisionBehavior alloc] 
        initWithItems:@[myView]]; 
    _collision.translatesReferenceBoundsIntoBoundary= YES; 
    [_animator addBehavior:_collision]; 

} 

- (void)didReceiveMemoryWarning { 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

@end 

однако MyView не опускался и просто остался в исходном положении. Может ли кто-нибудь сказать мне причину?

ответ

0

Замените эту строку, вы не добавляя барьер в UICollisionBehavior

_collision = [[UICollisionBehavior alloc] initWithItems:@[myView, barrier]];