我刚刚开始使用 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/

10-13 03:56