9
votes

Désactiver la rotation sur un uisnapbehavior?

J'aime ce uisnapbehavior extrait, mais je veux vraiment l'utiliser pour glisser dans une direction unique avec une légère oscillation.

existe-t-il un moyen de désactiver la rotation de ce comportement? Comme spritekit a permet une propriété qui peut être facilement désactivé.


0 commentaires

5 Réponses :


10
votes

pas besoin de uikitynnynamics code> strud> pour cela.

Il suffit de devoir simplement utiliser: p>

[UIView animateWithDuration:0.5
                          delay:0.0
         usingSpringWithDamping:0.65
          initialSpringVelocity:0.5
                        options:0
                     animations:^
    {
        self.transform = (self.expanded) ? self.openedTransition : self.closedTransition;
    }
                      completion:nil];


1 commentaires

D'accord, si tout ce que vous voulez, c'est l'effet de printemps, il s'agit d'une approche plus simple que d'utiliser une dynamique uikit.



0
votes

UIView est conforme à Uidynamicitem, qui a une propriété de transformation qui est appelée lorsqu'une rotation est faite. SO SETTRANSFORME SETTRANSFORT: Avec Néanness ...

- (void)setTransform:(CGAffineTransform)transform
{
}


0 commentaires

11
votes

Voici une meilleure réponse: Un Uisnapbehavior a une propriété d'action, qui prend un bloc qui est appelé à chaque étape. Réglage de ce bloc comme celui-ci ...

snapBehavior.action = ^{ view.transform = CGAffineTransformIdentity; };


0 commentaires

28
votes

Vous pouvez le faire en ajoutant un uidynamicittempheavior à votre uidynamicanimator , puis définissant son Permet la propriété de propriété non Comme: xxx


1 commentaires

D'accord, il s'agit de la technique pour arrêter la rotation dans un uisnapbehavior . Et si vous avez d'autres comportements de dynamique uikit en place que vous devez honorer (par exemple, uicollisionbehavior ), c'est la bonne réponse, comme le animatewithduration suggéré ailleurs n'honorera pas d'autre Comportements que vous pourriez avoir en place.



2
votes

Je cherchais la même solution moi-même, mais la définition perforation sur un uidynamicicitTempheavior ne m'a pas vraiment donné l'effet que je cherchais.

J'étais capable d'empêcher tout mouvement de uisnapbehavior en passant à l'aide de uicollisionbehavior et en plaçant deux limites de chaque côté de la vue que je ne voulais pas bouger (dans mon cas, j'ai configuré les limites sur le côté gauche et droit de la vue pour prévenir le mouvement des axes X). Pour obtenir un joli effet gonflable, j'ai également défini frottement à 0 (en utilisant uidynamicicitTemphehavior ) et ajusté le amortissement sur uisnapbehavior Pour obtenir la bonne quantité de rebond.

Voici un exemple de ce qui a fonctionné pour moi: xxx


0 commentaires