我刚刚开始使用 UIDynamic 工具包,并在网上遵循了示例。我已经实现了我想要的行为,即视图接收到一个方向的瞬时力并弹回原点。
我使用下面的代码实现了这一点
CGPoint origCenter = self.viewContentContainer.center;
self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
UIPushBehavior *push = [[UIPushBehavior alloc]
initWithItems:@[self.viewContentContainer] mode:UIPushBehaviorModeInstantaneous];
CGVector vector = CGVectorMake(200.0, 0.0);
push.pushDirection = vector;
CGPoint anchorpoint = origCenter;
UIAttachmentBehavior *attachment = [[UIAttachmentBehavior alloc] initWithItem:self.viewContentContainer attachedToAnchor:anchorpoint];
[attachment setFrequency:2.0];
[attachment setDamping:0.5];
[self.animator addBehavior:push];
[self.animator addBehavior:attachment];
但是,它最终会在 1 或 2 个像素上振荡很长时间。改变频率和阻尼值似乎并没有使这变得更好或更糟。
有没有其他人经历过这个?
非常感谢。