2014-02-16 3 views
3

Прямо сейчас у меня есть UIPushBehavior, который я использую для просмотра, чтобы оттолкнуть его от экрана в зависимости от того, где пользователь коснулся UIPanGestureRecognizer. Это работает, но моя проблема в том, что представление вращает абсурдную сумму ... как будто она привязана к шине спортивного автомобиля.Как сделать мое представление, которое манипулирует UIPushBehavior, не вращается? Это абсурдная сумма

Это, как я придаю UIPushBehavior:

else if (panGestureRecognizer.state == UIGestureRecognizerStateEnded) { 
    [self.animator removeBehavior:self.panAttachmentBehavior]; 

    self.pushBehavior = [[UIPushBehavior alloc] initWithItems:@[self.imageView] mode:UIPushBehaviorModeInstantaneous]; 
    [self.pushBehavior setTargetOffsetFromCenter:centerOffset forItem:self.imageView]; 
    self.pushBehavior.active = YES; 

    CGPoint velocity = [panGestureRecognizer velocityInView:self.view]; 
    CGFloat area = CGRectGetWidth(self.imageView.bounds) * CGRectGetHeight(self.imageView.bounds); 
    CGFloat UIKitNewtonScaling = 1000000.0; 
    CGFloat scaling = area/UIKitNewtonScaling; 
    CGVector pushDirection = CGVectorMake(velocity.x * scaling, velocity.y * scaling); 

    self.pushBehavior.pushDirection = pushDirection; 

    [self.animator addBehavior:self.pushBehavior]; 
} 

Я не знаю точно, что я должен быть изменения, чтобы манипулировать им больше. Скорость и все идеально, я просто не хочу, чтобы она вращалась так же абсурдно.

ответ

2

Может быть, это слишком поздно, но если вы хотите, чтобы исключить вращение полностью, сделайте следующее:

UIDynamicItemBehavior* dynamic = [[UIDynamicItemBehavior alloc] initWithItems:@[self.imageView]]; 
dynamic.allowsRotation = NO; 
[self.animator addBehavior:dynamic]; 

и [self.animator addBehavior:self.pushBehavior];

+0

большой наконечник! связанные с этим. http://stackoverflow.com/questions/25646857 – Fattie

 Смежные вопросы

  • Нет связанных вопросов^_^