我使用UIDynamics
- Push Behavior
创建了这个小动画。
我做的是:
我创建了一个简单的UIPushBehavior
,如此:
self.pushBehavior = [[UIPushBehavior alloc] initWithItems:@[self.littleJumpy] mode:UIPushBehaviorModeInstantaneous];
littleJumpy只是UIView
,其大小为{20, 20}
,已添加到当前视图中。
[animator addBehavior:self.pushBehavior];
然后我会设置magnitude
,然后设置active = YES;
以上是一种方法。
它完美无缺。
在某个时间点,我会将此推送行为的active
状态设置为NO
。
然后我会再次将它设置为YES
。
问题出现了。我意识到,一旦推送行为的活动状态设置为NO
,就无法通过将其设置为YES
来再次恢复。
因此,我需要分配和配置新的推送行为,并将其重新添加到animator
。
在我将alloc
状态设置为init
之后,如果我们需要active
和NO
一次又一次地推送行为,那么让我担心的是内存问题。
对于一些动画,它不应该受到伤害,但是如果有人想要创建一个连续的动作,并且在此期间行为的active
状态设置为NO
并且不能简单地通过设置恢复再次转到YES
,在这种情况下,需要再次执行新的alloc
+ init
,然后一遍又一遍地添加到动画师。
这是正常行为还是我在这里遗漏了什么?
节日快乐。
答案 0 :(得分:0)
这是一个老问题。
但经过数月的试验,我得出结论,一旦active
州设置为NO
,我就必须重新alloc
并重新{{1}再次行为,以便重用行为。
换句话说,从init
再次将其设置为YES
不会重新激活该行为。