Почему мой UIGravityBehavior не работает

Я создаю UIDynamicAnimator а также UIGravityBehavior добавить гравитации к аниматору, но гравитация не работает. и там отобразить мой dropView.

-(UIDynamicAnimator *)animaotr
{
    if(!_animator)
    {
        _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.gameView];
    }
    return _animator;
}
-(UIGravityBehavior *)gravity
{
    if(!_gravity)
    {
        _gravity = [[UIGravityBehavior alloc] init];
        _gravity.magnitude = 1;
        [self.animator addBehavior:_gravity];
    }
    return _gravity;
}

-(void)drop{
CGRect frame;
frame.origin = CGPointZero;
frame.size = DROP_SIZE;
int x = (arc4random()%(int)self.gameView.bounds.size.width) / DROP_SIZE.width;
frame.origin.x = x * DROP_SIZE.width;

UIView *dropView = [[UIView alloc] initWithFrame:frame];
dropView.backgroundColor = [self randomColor];
[self.gameView addSubview:dropView];
[self.gravity addItem:dropView];

}

1 ответ

Решение

Проблема заключается в этой декларации:

-(UIDynamicAnimator *)animaotr {

Этот метод не соответствует названию self.animator, поэтому он не будет вызываться, и, следовательно, ваше гравитационное поведение не добавляется ни к одному аниматору.

Другие вопросы по тегам