0

我使用UIDynamics-创建了这个小动画Push Behavior

我所做的是:

我创建了一个简单的UIPushBehavior像这样:

self.pushBehavior = [[UIPushBehavior alloc] initWithItems:@[self.littleJumpy] mode:UIPushBehaviorModeInstantaneous];    

littleJumpy 只是一个UIViewwith size:{20, 20}被添加到当前视图。

[animator addBehavior:self.pushBehavior];

然后我会设置magnitude然后随后设置active = YES;

以上是一种方法。

它工作完美。

在某个时间点,我会将此推送行为的active状态设置为NO. 之后我会再次将其设置为YES.

问题由此而来。我意识到,一旦将推送行为的活动状态设置为NO,就无法通过将其设置为 来再次恢复它YES

因此,我需要分配和配置一个新的推送行为并将其animator重新添加到所有内容中。

让我担心的是内存问题,如果我们需要,alloc并且init在将其active状态设置为NO.

对于一些动画,它不应该受到伤害,但是如果有人想要创建一个连续的运动并且在此期间行为的active状态设置为NO并且不能简单地通过再次将其设置为来恢复,在这种情况下需要YES一个新的alloc+init再次执行,然后一遍又一遍地添加到动画师中。

这是正常行为还是我在这里遗漏了什么?

节日快乐。

4

1 回答 1

0

这是一个老问题。

但是经过几个月的实验,我得出一个结论,一旦active状态设置为NO,我将不得不再次alloc重复init该行为,以便重新使用该行为。

换句话说,再次将其设置为YESfromNO不会重新激活该行为。

于 2014-12-23T13:36:38.487 回答