gpt4 book ai didi

uikit-dynamics - UIKit Dynamics UICollisionBehavior 无反弹的碰撞

转载 作者:行者123 更新时间:2023-12-04 08:35:25 26 4
gpt4 key购买 nike

我有一个 View ,其边界设置为碰撞( setTranslatesReferenceBoundsIntoBoundaryWithInsets )和一个带有重力的 subview 设置,以便它可以与 super View 边界发生碰撞。

我正在尝试使碰撞的弹性为 0%,但我还没有弄清楚如何。我试过 UIDynamicItemBehavior对于弹性为 0 的 subview ,摩擦力也高得离谱,什么也没有。我的理由是 0 弹性已经意味着 0 力在冲击时再生,但即使是负数似乎也无济于事或对此无能为力。

关于如何使碰撞吸收所有能量或使 subview 在与边界碰撞时不反弹的任何想法?

最佳答案

我可能做错了,但以下似乎在一个简短的例子中起作用:
为有问题的项目分配 UIDynamicItemBehavior:

self.itemBehaviorInQuestion = [[UIDynamicItemBehavior alloc] initWithItems:@[self.infoView]];
self.itemBehaviorInQuestion.resistance = 0;

self.collisionBehavior = [[UICollisionBehavior alloc] initWithItems:@[self.infoView]];

self.collisionBehavior.collisionDelegate = self;

[self.animator addBehavior:self.collisionBehavior];
[self.animator addBehavior:self.itemBehaviorInQuestion];
实现以下 UICollisionBehavior 委托(delegate)方法:
- (void)collisionBehavior:(UICollisionBehavior *)behavior beganContactForItem:(id<UIDynamicItem>)item withBoundaryIdentifier:(id<NSCopying>)identifier atPoint:(CGPoint)p
{
self.itemBehaviorInQuestion.resistance = 100;
}

- (void)collisionBehavior:(UICollisionBehavior *)behavior endedContactForItem:(id<UIDynamicItem>)item withBoundaryIdentifier:(id<NSCopying>)identifier
{
self.itemBehaviorInQuestion.resistance = 0;
}
在那一刻将阻力设置为高值似乎可以减轻项目的反弹。

关于uikit-dynamics - UIKit Dynamics UICollisionBehavior 无反弹的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com