the method:
[aView removeMotionEffect:effect];
is optimized, so you should not fear from executing it. My guess is that 'playing' with their vectors & gravity, while managing a lot of view will be far more difficult then just removing their behaviors.
you can use this snippet:
- (void)removeMotionEffectsFromViews:(NSArray *)views
{
for (id obj in views) {
if ([obj isKindOfClass:[UIView class]]) {
UIView *aView = (UIView *)obj;
for (UIMotionEffect *effect in [aView motionEffects]) {
[aView removeMotionEffect:effect];
}
}
}
[self.animator /*UIDynamicAnimator*/ removeAllBehaviors];
}