3

UIDynamicItemBehavior に抵抗を追加することで、簡単にスナップを遅くすることができます。ただし、抵抗のデフォルト値は 0.0 であり、それでも私には遅すぎます。抵抗を負の値に設定しても効果はなく、0.0 と同じ速さで動いているように見えます。

UISnapBehavior を高速化するにはどうすればよいですか?

(スナップを遅くする例を次に示します):

UIDynamicItemBehavior *dynamicItemBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[button]];
dynamicItemBehavior.resistance = 50.0; // This makes the snapping SLOWER
UISnapBehavior *snapBehavior = [[UISnapBehavior alloc] initWithItem:button snapToPoint:point];
[self.animator addBehavior:button.dynamicItemBehavior];
[self.animator addBehavior:button.snapBehavior];
4

1 に答える 1

5

を使用しUIAttachmentBehaviorて と同様の効果を実現し、UISnapBehavior速度をより細かく制御することもできます。例えば:

UIAttachmentBehavior *attachment = [[UIAttachmentBehavior alloc] initWithItem:viewToAnimate attachedToAnchor:viewToAnimate.center];
[self.animator addBehavior:attachment];
attachment.frequency = 20.0;
attachment.damping = 1.0;
attachment.anchorPoint = newPoint;

frequency上記の値に増やす1.0と、高速になります。frequencyとの間の値に減らす0.01.0、速度が遅くなります (またはresistanceより大きい値を追加1.0するとUIDynamicItemBehavior)。


このfrequency値を使用したときに最終的な位置で振動していることがわかった場合は、アイテムにも抵抗を追加します。

UIDynamicItemBehavior *resistance = [[UIDynamicItemBehavior alloc] initWithItems:@[viewToAnimate]];
resistance.resistance = 100.0;
[self.animator addBehavior:resistance];
于 2014-03-03T07:11:30.850 に答える