我刚刚开始使用 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 个像素。改变频率和阻尼值似乎并没有使这变得更好或更糟。
有没有其他人经历过这种情况?
非常感谢。
最佳答案
添加它,它应该修复它:
attachment.length = 1.0f;
这是一种预期的行为,尽管它看起来“难看”。以上只是抵消了“难看”。
测试。希望能帮助到你。
关于ios - 带有附件和推送行为的 UIDynamicKit 导致振荡时间过长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21459998/