我有一些UIViews正在使用UIDynamicAnimation,特别是UIGravityBehavior。我需要知道如何让他们停下来随时开始。
我一直在尝试各种组合,手动设置行为的属性,比如将重力设置为0,0,或者分别将星等和向量设置为0,甚至一次将所有的值加角度设置为0,然后物体就会继续移动。
我可以把他们移到一个不同的地方,但他们只是保持了以前的势头,并继续前进。
我最后能想到的是从行为中完全删除视图,但是我需要停止并启动很多不同的时间,这看起来非常笨拙。这是唯一的办法吗?
发布于 2013-12-05 09:36:17
方法:
[aView removeMotionEffect:effect];是优化的,所以您不应该害怕执行它。我的猜测是,“玩”他们的矢量&重力,同时管理许多观点将比仅仅消除他们的行为要困难得多。
您可以使用以下代码片段:
- (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];
}https://stackoverflow.com/questions/20387058
复制相似问题